微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Solr 建议器 - 在Suggest.cfq 中查找子字符串

如何解决Solr 建议器 - 在Suggest.cfq 中查找子字符串

我正在实现一个 Solr 请求处理程序来创建一个建议者。 作为 contextField,我使用的字段可以包含多个值,如果 suggest.cfq 参数匹配这些值中的至少一个或一部分,我希望能够搜索建议。

<requestHandler name="/searchSuggester" class="solr.SearchHandler" startup="lazy">
  <lst name="defaults">    
    <str name="suggest">true</str>
    <str name="suggest.count">10</str>
    <str name="suggest.dictionary">suggesterdisctionary</str>
    <!-- str name="highlight">false</str -->
    <!-- str name="suggest.cfq">UNCOMMNET_FOR_DEBUG</str -->
  </lst>
  <arr name="components">
    <str>suggest</str>
  </arr>
</requestHandler>

<searchComponent name="suggest" class="solr.SuggestComponent">
  <lst name="suggester">
    <str name="name">suggesterdisctionary</str>
    <str name="lookupImpl">AnalyzingInfixLookupFactory</str>
    <str name="dictionaryImpl">DocumentDictionaryFactory</str>
    <str name="field">test_all</str>
    <str name="contextField">multiple_suggest</str>
    <str name="suggestAnalyzerFieldType">text_general</str>
    <str name="buildOnStartup">false</str>
  </lst>
</searchComponent>

在不使用 suggest.cfq 参数的情况下寻找通用建议

http://HOST:8983/solr/COLLECTION/searchSuggester?suggest.q=my_word

但是我如何添加 suggest.cfq 以匹配例如任何值? (这只是为了调试) 并匹配包含在我的 multiple_suggest 多值字段中的特定字符串?

我试过了

http://HOST:8983/solr/COLLECTION/searchSuggester?suggest.q=my_word&suggest.cfq=*

http://HOST:8983/solr/COLLECTION/searchSuggester?suggest.q=my_word&suggest.cfq=*sub*

但第一个返回错误 "msg": "Failed to parse query: null" 而第二个不返回任何建议

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。