Создать новое поле во время поиска function_score - PullRequest
0 голосов
/ 19 февраля 2020

Я пытаюсь выполнить поиск с помощью 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 через попадания, я вижу, какие функциональные оценки были использованы для получения результата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...