Elassearch поиск, как "Distint Count" в SQL? - PullRequest
0 голосов
/ 19 апреля 2019

Я поместил следующие данные вasticsearch.

POST movies/movie
{
    "title": "Apocalypse Now",
    "director": "Francis Ford Coppola",
    "year": 1979,
    "genres": ["Drama", "War", "Foo"]
}

POST movies/movie
{
    "title": "Apocalypse Now",
    "director": "Francis Ford Coppola",
    "year": 1979,
    "genres": ["Drama", "War", "Foo", "Bar"]
}

POST movies/movie
{
    "title": "Apocalypse Now",
    "director": "Francis Ford Coppola",
    "year": 1979,
    "genres": ["Drama", "Comic", "Bar"]
}

И я хочу получить следующие результаты.

"Drama" : 3
"War" : 2
"Foo" : 2
"Bar" : 2
"Comic" : 1

Как мне получить эти результаты?Спасибо за вашу помощь в решении этой проблемы.Заранее спасибо.

1 Ответ

1 голос
/ 19 апреля 2019

Вы можете использовать terms агрегацию , например:

POST movies/_search
{
  "size": 0,
  "aggs": {
    "counts": {
      "terms": {
        "field": "genres.keyword",
        "size": 20
      }
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...