Мы работаем над веб-приложением с моделью поиска.
В сервлете поиска он захватывает параметры запроса от клиента, а затем создает поисковый запрос hibernate для поиска.
Теперь проблема в том, что параметры клиента изменчивы!.
Все принимаемые нами параметры перечислены следующим образом:
1) ключевое слово.
Ключевое слово (а)используя для поиска, поисковый запрос может быть обработан, даже если этот параметр передан.
Допустимый пример:
/search?keyword="test"
2) lowleftX, lowleftY, upperrightX, upperrightY.
Эти четыре параметра должны появляться одновременно или никогда. Поскольку эти четыре параметра используются для TermRangeQuery в lucene.Если произойдет одно из них, то должны произойти и остальные три.
И эти четыре параметра могут одновременно встречаться с ключевым словом.
Допустимый пример:
/search?lowleftX=10&lowleftY=10&upperrightX=40&upperrightY=30
/search?lowleftX=10&lowleftY=10&upperrightX=40&upperrightY=30&keyword="test"
3) категория
Используется для ограничения области поиска (просто поиск в специальной категории).
4) start, limit
Эти два параметраиспользуются для подкачки.
5) returnFields
ReturnFields, которые будут извлечены из индекса (если он хранится в индексе) и вернутся к клиенту.
Поэтому я понятия не имею, как построить запрос с использованием синтаксиса оценки (если .... еще .... если ...).
Может кто-нибудь сказать мне, как?