Solr DisMax查询等效项



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

q=名称:(foo*^100.0或foo^200.0)

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

保留一个只包含WhiteSpaceTokenizer的文本字段(根据您的区分大小写需求,可能还有LowerCaseFilter)。使用此字段进行精确匹配。让我们把这个字段称为name_ws

与其在name_ws上使用通配符查询,不如在分析器链中使用EdgeNGramTokenizer的文本类型复制字段,该字段将输出以下令牌:

food -> f, fo, foo, food

让我们把这个字段称为name_edge

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

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

(添加debugQuery=on以验证评分是否符合您的要求。)

相关内容

  • 没有找到相关文章