Как получить доступ к полям документа в безболезненном сценарии при агрегации ElasticSearch? - PullRequest
0 голосов
/ 06 декабря 2018

Я пытаюсь получить доступ к полям документа в безболезненном сценарии в таких агрегатах, как следующие:

"aggs": {   
    "errors": {
      "nested": {
        "path": "summary.testResult.testSuites.testCases.errors"
      },
      "aggs": {
        "message": {
          "terms": {
            "field": "summary.testResult.testSuites.testCases.errors.message.keyword",
            "size": 20,
            "script": {
                  "source": "def total=0; 
                            for (int i = 0; i < doc['summary']['testResult'].length; ++i)                               
                                total += doc['summary']['testResult']['numOfErrors'].value;
                            return total;"
            }
          }
        }
      }
    }
}

Но после некоторого исследования я понимаю, что

"Когда оба поляи параметры сценария настроены для агрегирования, сценарий будет обрабатываться как сценарий значений. В то время как обычные сценарии оцениваются на уровне документа (т. е. сценарий имеет доступ ко всем данным, связанным с документом), сценарии значений оцениваются науровень значения. В этом режиме значения извлекаются из настроенного поля, а сценарий используется для применения «преобразования» к этим значениям / с. "

в соответствии с https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations.html#_values_source

Но мне нужно, чтобы сценарий оценивался на уровне документа, чтобы я мог выполнять некоторые сложные вычисления (не ограничиваясь сложением).Есть ли способ добиться того, чего я хочу?

Обновление: я обнаружил, что я могу получать документы, принадлежащие определенному сегменту в результатах поиска, с помощью агрегирования Top Hits, но это позволяет мне получить максимум100 документов, так что это не возможное решение.

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