Solr 建议器多次返回相同的结果,但权重为空

标签 solr search-suggestion

我对 Solr 的建议器存在以下问题:它多次返回相同的值,并且所有权重都为零。我希望它只返回每个值一次,并根据频率赋予权重。

这是我的配置:

  <searchComponent name="suggest" class="solr.SuggestComponent">
    <lst name="suggester">
      <str name="name">infixSuggester</str>
      <str name="lookupImpl">AnalyzingInfixLookupFactory</str>
      <str name="indexPath">infix_suggestions</str>
      <str name="dictionaryImpl">DocumentDictionaryFactory</str>
      <str name="field">title_suggest</str>
      <str name="suggestAnalyzerFieldType">phrase_suggest</str>
      <str name="buildOnStartup">true</str>
      <str name="buildOnCommit">true</str>
    </lst>
  </searchComponent>

  <requestHandler name="/suggest" class="solr.SearchHandler">
    <lst name="defaults">
      <str name="suggest.dictionary">infixSuggester</str>
      <str name="suggest.onlyMorePopular">true</str>
      <str name="suggest">true</str>
      <str name="suggest.count">500</str>
      <str name="suggest.collate">true</str>
    </lst>
    <arr name="components">
      <str>suggest</str>
    </arr>
  </requestHandler>

当我调用例如 suggest?q=test 时,我得到类似的信息:

"suggestions":[{
    "term":"This is a test suggestion",
    "weight":0,
    "payload":""},
  {
    "term":"This is a test suggestion",
    "weight":0,
    "payload":""},
  {
    "term":"Another test example",
    "weight":0,
    "payload":""}]

所以我必须在我的客户端中进行处理才能只获得最流行的完成。我希望有更接近的东西:

"suggestions":[{
    "term":"This is a test suggestion",
    "weight":2,
    "payload":""},
  {
    "term":"Another test example",
    "weight":1,
    "payload":""}]

这可能吗?

谢谢!

最佳答案

您可以改用BlishedInfixLookupFactory建议器,它是AnalyzingInfixLookupFactory的高级版本,为您提供其他功能并删除重复项...双赢!

关于Solr 建议器多次返回相同的结果,但权重为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49453316/

相关文章:

Elasticsearch 术语建议器不会返回完全匹配的结果

url - 查找域及其子域中的所有网页

android - 不显示最近的搜索,显示自定义建议

java - 能够建议有限集合中单词的不同拼写的轻量级库?

windows - 在 Windows 上保护 Solr/Tomcat

Android:在搜索小部件的自定义建议图标上添加来自 url 的图像

python - 使用 Whoosh 生成搜索词建议?

solr - Solr 复制和 Solr 云有什么区别?

hadoop - 单片ETL到分布式/可扩展解决方案,OLAP立方体到Elasticsearch/Solr

运行 solR 时在 OSX 10.9.1 中找不到 Java 运行时