У меня есть база данных с информацией о поставщике: имя и адрес (поля адреса, города, почтового индекса и страны).Мне нужно найти эту базу данных и вернуть некоторых поставщиков.В поле поиска пользователь может ввести все, что угодно: имя поставщика, часть адреса, город, почтовый индекс, ... И, если я не могу найти какие-либо результаты, мне нужно внедрить Google как "Вы имели в видуmsgstr "особенность, чтобы дать предложение пользователю.
Я думал об использовании Solr / Lucene для этого.Я установил Solr, экспортировал необходимую информацию с помощью файла CSV и создал индексы на основе этого файла.Теперь я могу получать предложения из поля Solr, используя solr.SpellCheckComponent.Дело в том, что мое предложение основано на одном поле, и оно мне нужно для получения информации из полей адреса, города, почтового индекса, страны и имени.
В конфигурационном файле solr у меня есть что-то вроде этого:
<searchComponent name="spellcheck" class="solr.SpellCheckComponent">
<str name="queryAnalyzerFieldType">textSpell</str>
<lst name="spellchecker">
<str name="name">default</str>
<str name="field">name</str>
<str name="spellcheckIndexDir">spellchecker</str>
</lst>
</searchComponent>
<requestHandler name="/spell" class="solr.SearchHandler" startup="lazy">
<lst name="defaults">
<str name="spellcheck.onlyMorePopular">false</str>
<str name="spellcheck.extendedResults">false</str>
<str name="spellcheck.count>1</str>
</lst>
<arr name="last-components">
<str>spellcheck</str>
</arr>
</requestHandler>
Я могу выполнять такие запросы, как:
http://localhost:8983/solr/spell?q=some_company_name&spellcheck=true&spellcheck.collate=true&spellcheck.build=true
Кто-нибудь знает, как изменить мой конфигурационный файл, чтобы получать предложения из нескольких полей?
Спасибо !!!