Несовместимые результаты запросов Apache Solr - PullRequest
1 голос
/ 27 июня 2011

Я новичок в Apache Solr и пытаюсь сделать запрос, используя условия поиска для поля с именем "normalizedContents" и типа "text".

Все поисковые термины должны существовать в поле.Проблема в том, что я получаю противоречивые результаты.

Например, в индексе solr есть только один документ с полем normalizedContents со значением = "EDOUARD SERGE WILFRID EDOS0004 UNE MENTION COMPLEMENTAIRE"

Я пробовал эти запросы в веб-интерфейсе solr:

  • normalizedContents: (edouard AND une) возвращает результат
  • normalizedContents: (edouar * AND une) возвращает результат
  • normalizedContents: (EDOUAR * AND une) не возвращаетчто-нибудь
  • normalizedContents: (edouar AND une) ничего не возвращает
  • normalizedContents: (edouar * AND un) возвращает результат (хотя слова "un" нет)
  • normalizedContents: (edouar * И uned) возвращает результат (хотя нет слова "uned")

Вот объявление normalizedContents в schema.xml:

<field name="normalizedContents" type="text" indexed="true" stored="true" multiValued="false"/>

Итак, символы подстановки и оператор AND не следуют ожидаемому поведению.Что я делаю не так?

Спасибо.

1 Ответ

0 голосов
/ 27 июня 2011

По умолчанию тип поля text делает вывод на основе содержимого (solr.SnowballPorterFilterFactory).Таким образом, «un» и «uned» совпадают сТогда у вас может не быть фильтра solr.LowerCaseFilterFactory для анализатора запросов и индексов, поэтому EDUAR * не совпадает.И 4-й не совпадает, так как Эдуард не связан с Эдуаром.Если вам нужны точные совпадения, вам следует скопировать данные в другое поле, имеющее тип с более ограниченным набором фильтров.Например, только solr.WhitespaceTokenizerFactory

Размещение раздела <fieldType name="text"> в вашей схеме может помочь понять все.

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