我正在尝试升级我的集群 Elasticsearch v7,我的查询似乎返回了很多结果,即使是不可能的请求
以前,当搜索“qdsssq”时,我的搜索引擎什么也找不到。升级到 v7 后,类似的查询几乎返回结果。即使我删除should
了查询的所有子句,我也会得到很多结果。但是,评分似乎仍然有效,并且我输入了似是而非的查询,我确实首先获得了最相关的结果(但即使是不匹配的结果也是如此)。你能帮我找出问题吗?
这是我在 elasticsearch v5 上触发的一个查询示例,它产生了预期的结果(现在似乎最终在 ESv7 上返回了整个数据库)。为简单起见,我只包含了一个should
用于 FR/EN 的
{
index: "profiles",
type: nil,
body: {
query: {
function_score: {
query: {
bool: {
disable_coord: true,
filter: {
bool: {
filter: [{
term: {
indexable: true
}
}],
should: [{
match_phrase: {
: "description.french" => {
query: "qdsssq",
boost: 1,
slop: 50,
analyzer: "french_heavy"
}
}
}, {
match_phrase: {
: "description.english" => {
query: "qdsssq",
boost: 1,
slop: 50,
analyzer: "english"
}
}
}]
}
},
should: [{
match_phrase: {
: "description.french" => {
query: "qdsssq",
boost: 1,
slop: 50,
analyzer: "french_heavy"
}
}
}, {
match_phrase: {
: "description.english" => {
query: "qdsssq",
boost: 1,
slop: 50,
analyzer: "english"
}
}
}]
}
},
functions: [],
score_mode:: sum,
boost_mode:: multiply
}
}
},
size: 12,
from: 0
}
我是否错过了一些可以解释这一点的重大变化?过滤器上下文的删除(不太确定这意味着什么)是否相关?如何修复我的查询,使根本不匹配的结果不包含在结果中?
我正在使用 - AWS 上的 Elasticsearch v7.1 - Ruby gem elasticsearch-7.3.0