如何在单个 solr 建议器中配置多个上下文字段?

Yog*_*ana 3 solr spring-data-solr

我正在使用 apache solr 来搜索当前应用程序中的记录。

我可以通过配置上下文字段来根据 DocumentType 过滤建议。

现在我想添加另一个上下文字段,例如departmentType。我不确定如何为多个上下文字段配置建议器。

这是与单个上下文字段一起使用的建议器,并且工作正常。

 <searchComponent name="suggest" class="solr.SuggestComponent">
  <lst name="suggester">
     <str name="name">suggesterByName</str>
     <str name="lookupImpl">AnalyzingInfixLookupFactory</str>
     <str name="dictionaryImpl">DocumentDictionaryFactory</str>
     <str name="field">fullName</str>
     <str name="contextField">documentType</str>
        <str name="suggestAnalyzerFieldType">text_general</str>
     <str name="buildOnStartup">false</str>
   </lst>
 </searchComponent>
Run Code Online (Sandbox Code Playgroud)

我参考这篇文章 https://issues.apache.org/jira/browse/SOLR-7888

但仍然不清楚如何在单个建议器中配置多个上下文字段。

vsr*_*293 6

您必须在 schema.xml 中创建一个新字段作为 context_field。该字段应该有multivalued=true

<field name="context_field" type="text_suggest" multiValued="true" indexed="true" stored="true"/>
Run Code Online (Sandbox Code Playgroud)

然后,您必须创建此 context_field 作为 json 中的列表,以便在 solr 中建立索引。

"context_field" : ["some document type", "some department type"]
Run Code Online (Sandbox Code Playgroud)

索引后你可以这样建议-

suggest.q=b&suggest.cfq=context_documentType AND context_departmentType
Run Code Online (Sandbox Code Playgroud)

希望它有效