2013-11-25 3 views
0

Я использую solr-4.5.1. Мне нужно сделать нечеткий поиск, и это происходит с помощью добавления «~» в конце слова. Теперь мне нужно сделать нечеткое совпадение с пространством. Например, мне нужно искать «Bill Gates» от «BillGates». Может ли кто-нибудь помочь.Нечеткий поиск в Solr Без пространства

ответ

1

Опишите проблему, о которой идет речь ниже. Каков ваш запрос? Какие возможные хиты вы хотите, чтобы этот запрос соответствовал?

Кстати, «A B» ~ не является нечетким запросом, это запрос близости. Пример «batman movie» ~ 100 - это найти все документы, в которых «batman» встречается в 100 словах «movie».

Чтобы сделать нечеткий поиск, используйте тильду, символ «~» в конце Одно слово Термин. Например, для поиска термина схожим по написанию, чтобы «разгуляться» использовать нечеткий поиск:

разгуляться ~

Таким образом, существует огромная разница.

Подробнее здесь: http://lucene.apache.org/core/2_9_4/queryparsersyntax.html

Edit:

Это то, что вам нужно сделать: Используйте text_en_splitting для вашего типа поля, например:

<field name="names" type="text_en_splitting" indexed="true" stored="true"/> 

И вновь индексировать ваш данных, это будет соответствовать вашим запросам. Не нужно делать нечеткие соответствия для этого. Поиграйте с ним и посмотрите, как работают ваши запросы. Магия осуществляется токенизаторами, в этом важно, например, solr.WordDelimiterFilterFactory.

Вы можете прочитать больше о tokenizers здесь:

http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters 
+0

Вот мой problem.Solr магазин значение 'AVIA ИМПОРТ'. Я выхожу, используя запрос http: // localhost: 8983/solr/collection1/spell? Q =% 22AVIA% 20IMPORT% 22. Но мне нужно искать его одним словом. Как и ниже query.http: // localhost: 8983/solr/collection1/spell? Q =% 22AVIAIMPORT% 22. – fawas

+0

См. Мой ответ выше в Edit. – Arun

Смежные вопросы