Я пытаюсь обновить свой кластер 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
}
Я пропустил какое-то критическое изменение, которое могло бы объяснить это? удаление контекста фильтра (не совсем уверен, что это значит) related ? Как я могу исправить свой запрос, чтобы результаты, которые вообще не совпадают, не включались в результаты?
Я использую - Elasticsearch v7.1 на AWS - Ruby gem elasticsearch-7.3.0