У меня запущен SOLR, он индексирует данные через DIH и правильно возвращает результаты для запросов.Я пытаюсь настроить другое ядро для запуска подсказки, чтобы автозаполнение географических местоположений.У нас есть веб-приложение, которое должно принимать данные о городе, штате / регионе, стране.Мы хотели бы сделать это в одном окне ввода.Вот несколько примеров:
Бруклин, Нью-Йорк, Соединенные Штаты АмерикиФиладельфия, Пенсильвания, Соединенные Штаты АмерикиБарселона, Каталония, Испания
Предположим, что каждое место в мире можно разделить на эти 3 формы ввода.Я настроил свой DIH для создания поля TemplateTransformer, которое объединяет 4 таблицы (город, штат и страна - все независимые таблицы, соединенные друг с другом таблицей основных мест) в поле с именем "fullplacename":
<field column="fullplacename" template="${city_join.plainname},
${region_join.plainname}, ${country_join.plainname}"/>
Я определил поле "text_auto" в schema.xml:
<fieldType class="solr.TextField" name="text_auto">
<analyzer>
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
и определил также эти два поля:
<field name="name_autocomplete" type="text_auto" indexed="true" stored="true" multiValued="true" />
<copyField source="fullplacename" dest="name_autocomplete" />
Теперь вот моя проблема.Это хорошо работает для первого термина, то есть, если я наберу "brooklyn", я получу ожидаемые результаты, используя этот URL для запроса:
http://localhost:8983/solr/places/suggest?q=brooklyn
Однако, как только я поставлю запятую и /или пробел там, он разбивает их на 2 предложения, и я получаю предложение для каждого:
http://localhost:8983/solr/places/suggest?q=brooklyn%2C%20ny
Дает мне предложение для "Бруклин" и предложение для "Нью-Йорк" вместо предложенияэто соответствует "Бруклин, Нью-Йорк".Я испробовал все решения, которые смог найти через Google, и мне не повезло.Есть что-то простое, что я пропустил, или это неправильный подход?
Спасибо!
EDIT: На всякий случай вот определение searchComponent и requestHandler:
<requestHandler name="/suggest" class="org.apache.solr.handler.component.SearchHandler">
<lst name="defaults">
<str name="spellcheck">true</str>
<str name="spellcheck.dictionary">suggest</str>
<str name="spellcheck.count">10</str>
</lst>
<arr name="components">
<str>suggest</str>
</arr>
</requestHandler>
<searchComponent name="suggest" class="solr.SpellCheckComponent">
<lst name="spellchecker">
<str name="name">suggest</str>
<str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
<str name="lookupImpl">org.apache.solr.spelling.suggest.tst.TSTLookup</str>
<str name="field">name_autocomplete</str>`<br/>
</lst>
</searchComponent>