Я использую solr-4.5.1. Мне нужно сделать нечеткий поиск, и это происходит с помощью добавления «~» в конце слова. Теперь мне нужно сделать нечеткое совпадение с пространством. Например, мне нужно искать «Bill Gates» от «BillGates». Может ли кто-нибудь помочь.Нечеткий поиск в Solr Без пространства
ответ
Опишите проблему, о которой идет речь ниже. Каков ваш запрос? Какие возможные хиты вы хотите, чтобы этот запрос соответствовал?
Кстати, «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
Вот мой problem.Solr магазин значение 'AVIA ИМПОРТ'. Я выхожу, используя запрос http: // localhost: 8983/solr/collection1/spell? Q =% 22AVIA% 20IMPORT% 22. Но мне нужно искать его одним словом. Как и ниже query.http: // localhost: 8983/solr/collection1/spell? Q =% 22AVIAIMPORT% 22. – fawas
См. Мой ответ выше в Edit. – Arun