Предположим, у меня есть составной запрос bool с различными операторами "must" и "must", каждый из которых может включать в себя различные листовые запросы, в том числе запросы "multi-match" и "match_phrase", такие как ниже.
Как можно Я получаю оценку по отдельным запросам, упакованным в один запрос? Я знаю, что одним из способов может быть разбить его на несколько запросов, выполнить каждый, а затем агрегировать результаты на уровне кода (не на уровне запроса). Тем не менее, я полагаю, что это менее эффективно, плюс я теряю функции сортировки / разбиения на страницы / .... из ElasticSearch.
Я думаю, что "Объяснение API" также не полезно для меня, так как обеспечивает очень низкий уровень детали оценки (неэффективно и трудно для анализа), в то время как мне просто нужно знать оценку для каждого конкретного c листа запроса (который я уже назвал их)
Если я ошибаюсь в любой терминологии (например, состав, лист), пожалуйста, поправьте меня. Общая картина заключается в том, как получить индивидуальные оценки из каждого подзапроса в запросе bool.
PS: я встречал Различные функции оценки в запросе bool . Тем не менее, он не возвращает баллы. Если я заверну свои запросы в "function_score", я хочу, чтобы оценка была по умолчанию, но я получал отдельные оценки в ответ на запрос.
Пожалуйста, посмотрите фрагмент ниже:
{
"query": {
"bool": {
"must": [
{
"multi_match": {
"query": "...",
"fields": [
"field1^3",
"field2^5"
],
"_name": "must1_mm",
"boost": 3
}
}
],
"should": [
{
"multi_match": {
"query": "...",
"fields": [
"field3^2",
"field4^5"
],
"boost": 2,
"_name": "should1_mm",
"boost": 2
}
},
{
"match_phrase": {
"field5": {
"_name": "phrase1",
"boost": 1.5,
"query": "..."
}
}
},
{
"match_phrase": {
"field6": {
"_name": "phrase2",
"boost": 1,
"query": "..."
}
}
}
]
}
}
}```