Я попытался написать на 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.
Я знаю, что могу использовать поле полезной нагрузки, но не понимаю, как это сделать. Или измените структуру, хранящую поля контекста, но я не могу ее найти.