У меня есть несколько миллионов документов, которые я запрашиваю следующим образом:
const query = {
min_score: 1,
query: {
bool: {
should: [
{
multi_match: {
query: "David",
fields: ["displayTitle^2", "synopsisList.text"],
type: "phrase",
slop: 2
}
},
{
nested: {
path: "contributors",
query: {
multi_match: {
query: "David",
fields: [
"contributors.characterName",
"contributors.contributionBy.displayTitle"
],
type: "phrase",
slop: 2
}
},
score_mode: "sum"
}
}
]
}
}
};
Этот запрос дает разумные результаты для широкого диапазона терминов. Однако у него есть проблема с «Давидом» - и, предположительно, с другими.
«Давид» довольно часто встречается в тексте. С параметром min_score
этот запрос всегда возвращает 0 документов. Когда я удаляю min_score
, я получаю тысячи документов, лучший из которых имеет оценку 22,749.
Кто-нибудь знает, что я делаю неправильно? Думаю, min_score
работает не так, как я думаю.
Спасибо