【问题标题】:Why does Dismax not work in simple query?为什么 Dismax 在简单查询中不起作用?
【发布时间】:2015-03-31 01:08:38
【问题描述】:

全部:

我是 SOLR 的新手,我上传了一些在内容字段(存储但未索引,复制到文本字段)和标题字段(存储和索引复制到文本字段)中具有“季节”的文档

当我使用没有 dismax 的基本查询时:

http://localhost:8983/solr/collection1/select?q=season&rows=5&wt=json&indent=true

它工作得很好并且返回正确的结果,但是当我想提升那些在内容而不是标题中具有更多“季节”的文档时,我使用了 dismax like(我想我使用它的方式完全是因为内容没有被索引,但我至少期望某些返回结果甚至不正确):

http://localhost:8983/solr/collection1/select?q=season&rows=5&wt=json&indent=true&defType=dismax&qf=content%5E100+title%5E1

没有返回匹配结果,我想知道是否有人可以帮助我解决这个问题?或者谁能​​告诉我如何正确使用dismax

谢谢

【问题讨论】:

    标签: solr dismax


    【解决方案1】:

    在您的第二个查询中,您将“内容”字段指定为唯一的查询字段,但之前您写道该字段已存储但未编入索引。如果某个字段未编入索引,则无法对其进行搜索。

    【讨论】:

    • 谢谢,我不太明白 SOLR 是如何工作的:在我的猜测中,我只是提升一个字段而不是在其中搜索,搜索字段是“文本”(索引但未存储),甚至如果该字段不能被搜索或评分,至少它应该返回某些不正确的结果。
    • 我之所以要这样做是因为:有些文档在标题部分有“季节”,但正文内容非常少,如果我只使用基本查询,这会导致结果得分很高.我想让内容字段中的查询项目命中得分高于标题(我不能简单地排除标题,因为我仍然想要它在结果中),所以我也必须索引内容?
    • 如果您想认真使用 Solr,您需要建立一些基础知识。我可以推荐优秀的书《Solr in Action》。
    【解决方案2】:

    我遇到了同样的问题。将其跟踪到模式定义,其中 dismax 工作,字段类型应该是文本而不是字符串

    例如 text_general、text_en_splitting、text_en

    这是因为用于此字段类型的标记器。

    -->

    【讨论】:

      猜你喜欢
      • 2011-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多