Я довольно новичок в экосистеме ElasticSearch, и мне нужно, чтобы сообщество помогло мне.
Мне нужно знать, можно ли считать результаты, полученные при полнотекстовом поиске, хорошими или нет. Я видел, что _score зависит от отправленного запроса и не может использоваться, чтобы определить, соответствуют ли наши результаты.
После попытки найти обходной путь у меня появилась идея, но она, похоже, не работает, и я не могу найти, почему.
Я пытаюсь выполнить безболезненный скрипт для вычисления _score "фальшивого" документа, который не проиндексирован так:
{
"script":
{
"source": "_score"
},
"context": "score",
"context_setup":
{
"index": _my_index,
"document":
{
"text": "the cat ate the dog"
},
"query":
{
"bool":
{
"should": [
{
"term":
{
"text": "the"
}
},
{
"term":
{
"text": "cat"
}
},
{
"term":
{
"text": "ate"
}
},
{
"term":
{
"text": "the"
}
},
{
"term":
{
"text": "dog"
}
}]
}
}
}
}
Что я ожидаю, так это максимальный «теоретический» балл. Тем не менее, я получаю баллы даже меньше, чем индексированные документы, которые не идеально подходят. Я думал, что это потому, что IDF, используемый при обработке запроса, не был IDF, рассчитанным для всех моих проиндексированных документов, но я не могу найти, почему ...
Спасибо и извините за мой английский