0

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.

Olaf Kock
  • 46,930
  • 8
  • 59
  • 90

1 Answers1

0

There are suggesters which don't support payload field.

You can add as below in your suggester definition at solr config xml file

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

And rebuild the suggester. Your suggestions will have payload field then.

Gibbs
  • 21,904
  • 13
  • 74
  • 138