【发布时间】:2019-04-21 14:24:11
【问题描述】:
我有一个搜索多个字段的 solr 查询。为了增加召回率,我还做了通配符和模糊查询。我使用 edismax 查询解析器,因为我还必须使用 boost 函数。
这里是查询的相关部分:
defType=edismax&q= (wine AND company) OR (wine* AND company*)^0.5 OR (wine* OR company*)^0.01 OR (wine~1 AND company~1)^0.02&qf=primary_tags^1 secondary_tags_s^0.2 merchant_name_s^0.5
现在,上面的查询在primary_tags^1 secondary_tags_s^0.2 merchant_name_s^0.5 的所有字段上搜索(wine AND company) OR (wine* AND company*)^0.5 OR (wine* OR company*)^0.01 OR (wine~1 AND company~1)^0.02,但我想要的是(wine AND company) 应该只在merchant_name_s^0.5、(wine* AND company*)^0.5 OR (wine* OR company*)^0.01 上搜索primary_tags^1 和(wine~1 AND company~1)^0.02在secondary_tags_s^0.2。
实现这一目标的正确方法是什么?
【问题讨论】: