Я пытаюсь выполнить поиск с помощью function_score
, но я хочу проверить, какие функции были сопоставлены при фильтрации function_score
.
На этом примере страницы эластичного поиска.
GET /_search
{
"query": {
"function_score": {
"query": { "match_all": {} },
"boost": "5",
"functions": [
{
"filter": { "match": { "test": "bar" } },
"random_score": {},
"weight": 23
},
{
"filter": { "match": { "test": "cat" } },
"weight": 42
}
],
"max_boost": 42,
"score_mode": "max",
"boost_mode": "multiply",
"min_score" : 42
}
}
}
Как я могу узнать, когда у меня есть результаты, какие результаты из какого матча? Например, с таким результатом:
{
"took": 11,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 30,
"relation": "eq"
},
"max_score": 3,
"hits": [
{
"_index": "my_index",
"_type": "my_index",
"_id": "2",
"_score": 23,
"_source": {
"id": 2,
"test": "It contains bar"
}
},
{
"_index": "my_index",
"_type": "my_index",
"_id": "2",
"_score": 42,
"_source": {
"id": 2,
"test": "It contains cat"
}
}
]
}
}
Я ищу что-то вроде "script_fields". Я хочу ADD
новый field
во время поиска, сообщая мне, какой фильтр попал в ответ. Поэтому, когда я go через попадания, я вижу, какие функциональные оценки были использованы для получения результата.