Hibernate Search, отфильтруйте объект с самым высоким значением - PullRequest
0 голосов
/ 05 мая 2011

Привет, у меня есть EntityObject, как этот

public class Adm{
private String id;
private String version;
private String name;
private String mimetype;
    ... 
    ...
    ...

}

Я хотел бы добавить фильтр для всех объектов с самой высокой версией этих объектов с тем же именем.Кто-нибудь получил какие-либо идеи, как это сделать, с помощью фильтра или при создании запроса?

Я использую Hibernate Search версии 3.3.0.

// Trind

1 Ответ

0 голосов
/ 17 мая 2011

Фильтрация в Поиске осуществляется через FullTextFilters.См. http://docs.jboss.org/hibernate/stable/search/reference/en-US/html_single/#query-filter Вы можете передавать параметры в фильтр при их включении, например,

fullTextQuery.enableFullTextFilter("version").setParameter( "max", 1001 );

Вы можете передавать столько параметров, сколько вам нужно, а также передавать любой тип параметра, который вы хотите (у вас будет простодля приведения в соответствие в реализации фильтра).Вам, вероятно, понадобится другой запрос, чтобы определить максимальные значения.Возможно, запрос HQL или Criteria.В Filter вы можете использовать NumericRangeQuery .Конечно, все зависит от модели вашего домена.Вы не включили аннотации поиска Hibernate и запрос поиска Hibernate, который вы пытаетесь запустить.Также максимальную версию вы можете определить заранее и кэшировать?Надеюсь, это даст вам несколько советов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...