elasticsearch - Elasticsearch:从评分中排除过滤子句
问题描述
我在查询子句的深处有一个过滤器子句,但我认为计算过滤器子句的分数没有意义。我怎样才能去掉这个过滤子句?这会提高性能吗?
{
"size" : 30,
"sort" : [
{
"_score" : {
"order" : "desc"
}
}
],
"query" : {
"function_score" : {
"score_mode" : "sum",
"boost_mode" : "sum",
"functions" : [
{
...
<filter_clause>
}
]
}
}
}
解决方案
您可以将任何(子)查询包装在过滤器上下文中,这是一个没有评分的是/否操作:
{
"query": {
"bool": {
"filter": [
{...}
]
}
}
}
虽然function_scores
应该会影响得分,所以我认为以这种方式禁止它是没有意义的。
推荐阅读
- cypress - cy.request() TypeError [ERR_INVALID_CHAR]: 标头内容中的无效字符 ["cookie"]
- node.js - 当我尝试只设置一个对象的键时,为什么所有对象的键都设置为值?
- mongodb - MongoDB:更新集合的所有文档中的特定字段,给定一个只有目标字段和新值的特定数组
- git - 让 'git log' 忽略 0 次更改的提交
- android - 控制何时在 Google Play 商店上发布您的应用
- javascript - findIndex 返回未定义而不是数字
- javascript - 将 React 组件注入 html 页面
- java - 无法让 UHF 阅读器读取标签
- python - 单击按钮后是否可以添加 2 个新的输入字段?
- docker - Flask Docker - 2 容器通信 - ConnectionError:HTTPConnectionPool:url 超出最大重试次数: