Проблема синтаксиса синтаксического анализатора запросов Lucene.net - PullRequest
0 голосов
/ 03 сентября 2010

Привет всем, у меня проблема с построением сложного запроса lucene с использованием QueryParser.

Это в основном то, что мне нужно для поиска одного из полей (разрешено): Это поле в основном хранит некоторые серииключевых слов, которые указывают на некоторый доступ.Это может выглядеть так:

  1. -Партнеры: ALL
  2. -Уровень: ALL

  3. -Прогона: АЗИЯ, ЕВРОПА,AMERICAS

  4. -Paffiliate: GOOGLE

Таким образом, в основном для каждого элемента для поиска мне нужно передать эти значения и посмотреть, если результат либо разрешает доступ для них, либо не защищен длякаждая категория

Я пытался использовать следующий синтаксис в анализаторе запросов, но это не сработало.

разрешено: ((«PPartners: ВСЕ» ИЛИ «PPartners: OEM») И («PLevel: ALL» ИЛИ «PLevel: Executive») И («« PAffiliate: ALL »ИЛИ« PAffiliate: XCompany »)И («PRegion: ВСЕ» ИЛИ «PRegion: Северная Америка»))

В результате я получил нулевые результаты. Вы бы посоветовали лучший способ выполнить этот поиск?Спасибо,

1 Ответ

0 голосов
/ 30 ноября 2010

Какой анализатор вы используете для QueryParser. Если поля, по которым вы ведете поиск, не были проанализированы, QueryPaser использует анализатор, который в нижнем регистре содержит строку запроса, тогда значение «ALL» никогда не будет соответствовать «all»

...