I tried to write my own suggester in Solr that uses context fields. Now configs look like this:
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"/>
When I make query, it looks like
suggest?сfq=Scottsdale&q=carlos
.
I want to make queries like
suggest?сfq=city:Scottsdale&q=carlos
or suggest?сfq=stars:5.0&q=carlos
.
So I want to distinguish context fields.
I know that I can use payload field, but I don't understand how. Or change a structure storing context fields, but I can't find it.