Elasticsearch: как рассчитать avg _score для каждого сегмента?

У меня есть запрос на сопоставление, и я хочу выполнить агрегацию терминов (скажем, для поля doctype), чтобы рассчитать для каждого сегмента средний _score запроса. Я не нахожу, как получить доступ к полю _score в агрегации. Кто-нибудь может помочь? спасибо, Патрик


person Patrick    schedule 29.06.2015    source источник


Ответы (1)


Чтобы получить доступ к счету, вам необходимо включить сценарии. Затем вы можете получить доступ к оценке в документе как показано в примере ниже:

"aggs": {
      "type_bucket": {
         "terms": {
            "field": "_type"
         },
        "aggs": {
            "avg_score": {
                "avg": {
                    "script": "_score"
                }
            }
        }
      }
    }
person keety    schedule 29.06.2015
comment
Спасибо, keety, моя ошибка заключалась в том, что я поставил field: _score вместо script: _score - person Patrick; 30.06.2015