首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何知道何时使用Solr和bf,以及如何应用查询逻辑?

如何知道何时使用Solr和bf,以及如何应用查询逻辑?
EN

Stack Overflow用户
提问于 2017-07-17 18:06:01
回答 1查看 7.4K关注 0票数 2

我刚刚开始学习Solr中的boost,到目前为止,我已经能够根据一些特定的短语添加boost查询,比如:bq=manufacturer:sony^2。但是,我现在想将逻辑应用于助推,但我不知道如何继续。

具体来说,我已经有了一个包含多个术语的boost查询,如

bq = manufacturer:"sony"^2 name:"bob"^3 town:"place"^4 age:"40"^5

但我想知道是否有可能添加另一个术语,它是一个较小的术语的集合,如果一个或多个匹配,那么对于给定的搜索结果,整个术语加权更高?类似于:

bq = manufacturer:"sony"^2 (name:"bob" OR town:"place" OR age:"40")^5

其中括号中的多项有一个相关的权重(5),只有当一个或多个子术语匹配时,才是“激活的”。

这样的东西只是属于一个bq,还是更接近于boost函数?我有点搞不懂主要的区别是什么。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2017-07-17 18:27:21

根据Solr文档https://cwiki.apache.org/confluence/display/solr/The+DisMax+Query+Parser

bq (Boost Query)参数bq参数指定一个额外的可选查询子句,该子句将添加到用户的主查询中,以影响评分。

bf (Boost函数)参数bf参数指定将用于构造FunctionQueries的函数(带有可选的提升),该函数将作为影响得分的可选子句添加到用户的主查询中。

如果要使用本机Solr函数之一从字段中派生值,则可以使用bf参数。

在您的例子中,您使用的是原样的字段,而不是在它们上使用任何本机Solr函数。因此,对于您的情况,bq将工作良好。

您可以在查询中链接几个bq参数以获得所需的输出。如你能做到:-

代码语言:javascript
复制
q=*:*&bq=manufacturer:sony^2&bq=name:bob^3&bq=town:place^4&bq=age:40^5

您可以修改上述查询以满足您的需要。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45150856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档