【问题标题】:Constant boost multivalued fields in SolrSolr 中的常量提升多值字段
【发布时间】:2017-09-11 07:46:26
【问题描述】:

我有一个存储字符串的多值字段,我需要对其执行查询。它将 ID 存储为字符串。所以,这是字段:

   <field name="id" type="string" indexed="true" stored="true" multiValued="true" termVectors="true"/>

查询看起来像

q: (id:'23' OR id:'24')^2

这会过滤掉字段为 23 或 24 的文档。具有这两个 ID 的文档位于顶部,具有这两个 ID 的文档位于下方。

我想要的是不断提升 2。如果至少有一个 ID 匹配,则将其提升 2。我该如何实现这样的目标?

【问题讨论】:

    标签: boost lucene solr-boost


    【解决方案1】:

    一种可能的选择是将此查询转换为 ConstantScoreQuery,方法是将 ^ 替换为 ^=

    q: (id:'23' OR id:'24')^=2
    

    在这种情况下,如果您的文档同时包含术语 23 和 24,或者仅包含其中任何一个,您的分数仍然相同,均为 2.0

    【讨论】:

      猜你喜欢
      • 2012-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多