Как обрабатывать конкатенации поисковых терминов в SOLR - PullRequest
0 голосов
/ 18 марта 2010

В настоящее время мы заменяем наш поиск продуктов с mysql на бэкэнд SOLR. Наши клиенты часто ищут такие термины, как «startrek online», «starwars», «redsteel» или даже «grandtheftauto». Есть ли в SOLR метод для расширения или проверки орфографии этих поисков в слогах, например, «Звездный путь онлайн», «Звездные войны», «Красная сталь», «Великий угонщик авто»?

Ответы [ 2 ]

2 голосов
/ 18 марта 2010

Вы можете использовать файл синонимов. Взгляните на этот сайт документации (solr.SynonymFilterFactory):

<fieldtype name="syn" class="solr.TextField">
  <analyzer>
      <tokenizer class="solr.WhitespaceTokenizerFactory"/>
      <filter class="solr.SynonymFilterFactory" synonyms="syn.txt" ignoreCase="true" expand="false"/>
  </analyzer>
</fieldtype>

Для разбиения поисковых запросов WordDelimiterFilterFactory может частично соответствовать вашим потребностям, но, возможно, синомимфильтр проще и лучше (+, вероятно, быстрее).

0 голосов
/ 18 марта 2010

Вы можете попробовать изменить условия поиска с помощью Левенштейна, но также использовать SoundEx / Metaphone для улучшения соответствия.

http://web.elctech.com/2008/04/13/advanced-solr-filters-with-phonetics/

http://web.elctech.com/2009/07/06/solr-vs-sphinx-fuzzy-search/

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