Как получить дополнительные данные с агрегацией терминов в Elastic Search? - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть следующее сопоставление для объекта навыков:

    skills: {
      type: 'nested',
      properties: {
        id: {
          type: 'short',
        },
        name: 'text',
        keyword: 'keyword',
      },
    }

Мне нужно найти 5 самых популярных навыков среди всех документов.Для этого я сделал запрос следующих терминов:

{
  "aggs": {
    "most_used_skill": {
      "nested": {
        "path": "skills"
      },
      "aggs": {
        "skill": {
          "terms": {
            "field": "skills.keyword",
            "size": 5
          }
        }
      }
    }
  }
}

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

"aggregations": {
    "most_used_skill": {
        "doc_count": 5,
        "skill": {
            "doc_count_error_upper_bound": 0,
            "sum_other_doc_count": 0,
            "buckets": [
                {
                    "key": "Skill 1",
                    "doc_count": 1
                },
                {
                    "key": "Skill 2",
                    "doc_count": 1
                },
                {
                    "key": "Skill 3",
                    "doc_count": 1
                },
                {
                    "key": "Skill 4",
                    "doc_count": 1
                },
                {
                    "key": "Skill 5",
                    "doc_count": 1
                }
            ]
        }
    }
}

Теперь, если я хочу вернуть идентификаторобъект навыка, а также ключевое слово, как я могу это сделать?Есть ли способ вернуть дополнительную информацию вместе с агрегацией?

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