Эластичный поиск вложенных агрегатов - метод из документации не работает - PullRequest
0 голосов
/ 24 января 2019

Я новичок в ES и борюсь с вложенными агрегатами. Вот мой фиктивный объект данных ([Вот мой объект данных] [1] [1]: https://i.stack.imgur.com/X7oaM.png). Я просто пытаюсь получить минимальную стоимость из «современного» поля.

Я прочитал следующие сообщения о проблеме, которую пытаюсь решить. Никто из них не помог мне решить проблему
- Эластичный поиск 6 вложенных запросов - https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-nested-aggregation.html - https://madewithlove.be/elasticsearch-aggregations/ - https://iridakos.com/tutorials/2018/10/22/elasticsearch-bucket-aggregations.html - https://github.com/elastic/elasticsearch/issues/9317

Более того, я искал весь стекопоток и не имел успеха ( да , я пробовал практически все решения, с которыми сталкивался, но безуспешно).

В соответствии с документами и указанными выше постами и т. Д. Вложенная агрегация должна выполняться следующим образом:

GET /loquesea/_search
{
  "size": 0,
  "aggs": {
    "modern_costs": {
      "nested": {
        "path": "modern"
      },
      "aggs": {
        "min_cost": {
          "min": {
            "field": "modern.cost1"
          }
        }
      }
    }
  }
}

Однако по завершении я получаю вот что:

{
  "took" : 1,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : 3,
    "max_score" : 0.0,
    "hits" : [ ]
  },
  "aggregations" : {
    "modern_costs" : {
      "doc_count" : 0
    }
  }
}

Я часами пытался сделать простую работу с вложенным агрегированием. Что я делаю не так?

1 Ответ

0 голосов
/ 25 января 2019

проблема решена. Оказывается, поскольку я не объявлял в отображении тип «автомобили» как «вложенный», вложенная агрегация не будет работать. Причина в том, что в Elastic Search, поскольку тип не был объявлен как «вложенный», ES будет рассматривать «автомобили» как объект.

...