Как различать поля контекста guish в запросах предложений в Solr? - PullRequest
0 голосов
/ 02 августа 2020

Я попытался написать на Solr своего суггестера, использующего поля контекста. Теперь конфигурации выглядят так:

solrconfig. xml

<searchComponent name="suggest" class="solr.SuggestComponent">
  <lst name="suggester">
    <str name="name">mySuggester</str>
    <str name="lookupImpl">AnalyzingInfixLookupFactory</str>
    <str name="dictionaryImpl">DocumentDictionaryFactory</str>
    <str name="field">name</str>
    <str name="suggestAnalyzerFieldType">textSuggest</str>
    <str name="contextField">tags</str>
  </lst>
</searchComponent>

managed-schema

<field name="tags" type="textSuggest" multiValued="true" indexed="true" stored="true"/>
<copyField source="address" dest="tags"/>
<copyField source="city" dest="tags"/>
<copyField source="state" dest="tags"/>
<copyField source="categories" dest="tags"/>
<copyField source="stars" dest="tags"/>

Когда я делаю запрос, он выглядит как

suggest?сfq=Scottsdale&q=carlos.

Я хочу делать запросы типа

suggest?сfq=city:Scottsdale&q=carlos или suggest?сfq=stars:5.0&q=carlos.

Поэтому я хочу различать guish контекст fields.

Я знаю, что могу использовать поле полезной нагрузки, но не понимаю, как это сделать. Или измените структуру, хранящую поля контекста, но я не могу ее найти.

1 Ответ

0 голосов
/ 02 августа 2020

Существуют суггестеры, которые не поддерживают поле полезной нагрузки.

Вы можете добавить, как показано ниже, в определение суггестера в конфигурации solr xml файл

 <str name="payloadField">tags</str>

И перестроить суггестер. Тогда в ваших предложениях будет поле полезной нагрузки.

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