我想知道是否可以针对should
类型的查询禁用分数计算,或者是否可以为过滤器上下文添加OR
?
ES版本:6 +
例如:
此查询将搜索records
OR voIds
中的匹配项,并将计算分数
POST customers/_search
{
"size": 10000,
"version": true,
"query": {
"bool": {
"should": [
{
"terms": {
"voIds": [
78031203, ...
]
}
},
{
"terms": {
"records.keyword": [
"S3G82U", ....
]
}
}
]
}
}
}
此查询将过滤records
和 voIds
都匹配的文档,并且不计算分数。不是我需要的,因为它使用了 AND
POST customers/_search
{
"size": 10000,
"version": true,
"query": {
"bool": {
"filter": [
{
"terms": {
"voIds": [
78031203
]
}
},
{
"terms": {
"records.keyword": [
"S3G82U"
]
}
}
]
}
}
}
我的目标是对有无分数的相同查询的性能进行故障排除。所以我有第一个分数的查询。没有分数怎么写第二个查询?
谢谢。
答案 0 :(得分:1)
这是不可能的。而且我认为用例功能不多。您是否在Elasticsearch或查询本身中看到速度缓慢?
答案 1 :(得分:0)
您不能完全禁用计分功能。但是您可以禁用query coordination。完全不知道对性能有多大帮助。