【问题标题】:Solr DisMax query equivalentSolr DisMax 查询等效项
【发布时间】:2013-02-21 03:43:21
【问题描述】:

我正在尝试在 SOLR 3.5.0 中设置提升处理程序,并且我需要以下等效于 dismax 格式的查询,它根据匹配类型在同一字段上定义不同的提升值(精确匹配得到 200,而通配符匹配得到 100)。

q=name:(foo*^100.0 OR foo^200.0)

【问题讨论】:

    标签: solr dismax


    【解决方案1】:

    这是解决此问题的一种方法。

    保留一个仅包含 WhiteSpaceTokenizer 的文本字段(可能还有 LowerCaseFilter,具体取决于您区分大小写的需要)。使用此字段进行完全匹配。我们称这个字段为name_ws

    不要在 name_ws 上使用通配符查询,而是在分析器链中使用带有 EdgeNGramTokenizer 的文本类型 copy field,这将输出如下标记:

    food -> f, fo, foo, food

    我们称这个字段为name_edge

    然后你可以发出这个 dismax 查询:

    q=foo&defType=dismax&qf=name_ws^200+name_edge^100

    (添加debugQuery=on 以验证评分是否按您想要的方式进行。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-23
      • 1970-01-01
      • 2017-08-07
      • 1970-01-01
      • 2010-10-12
      • 1970-01-01
      • 2014-03-21
      • 1970-01-01
      相关资源
      最近更新 更多