_score,同时在Elasticsearch中进行索引

_score,同时在Elasticsearch中进行索引,第1张

_score,同时在Elasticsearch中进行索引

我建议您查看有关提升的要求,因为当前的脚本没有太大意义。

另外,请查看elasticsearch
查询DSL的文档。它提供复合查询和简单查询,您可以将它们组合在一起。如错误所示,您不能在自定义分数查询中放入过滤器。您可以在自定义分数查询中使用过滤查询:

{  "query": {    "custom_score": {      "query": {        "filtered" : {          "query" : { "match": {   "xxx": {     "query": "foobar"   } }          },          "filter" : { "and": [   {     "query": {       "match": {         "yyyy": {"query": "barfoo"         }       }     }   } ]          }        }      },      "script": "_score * doc['_score']"    }  }}

或使用像这样的顶级过滤器

{  "query": {    "custom_score": {      "query": {        "match": {          "xxx": { "query": "foobar"          }        }      },      "script": "_score * doc['_score']"    }  },  "filter": {    "and": [      {        "query": {          "match": { "yyyy": {   "query": "barfoo" }          }        }      }    ]  }}

这两个选项的区别在于,如果您在搜索请求中也进行了构面,则不会考虑使用顶级过滤器,而如果将过滤器放入查询中,则会考虑它们。

要看的另一件事:如果只有一个子句,则不需要and过滤器。另外,将全文搜索放在过滤器中通常没有任何意义,因为过滤器是可缓存的,并且鉴于全文搜索是免费的并且几乎是不可预测的,因此将它们缓存是浪费的。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4982963.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存