Список агрегаций Elasticsearch порядка, основанный на поле (может быть текст / строка) - PullRequest
0 голосов
/ 22 октября 2018

Мой документ имеет идентификатор категории.

Это мой запрос агрегации:

"aggs": {
"categories": {
  "filter": {
    "bool": {
      "must": [
        {
          "exists": {
            "field": "price"
          }
        }
      ]
    }
  },
  "aggs": {
    "categories": {
      "terms": {
        "field": "category_id",
        "order": {
          "_count": "desc"
        },
        "size": 15
      }
    }
  }
}    

Он дает следующие результаты:

"categories" : {
  "doc_count" : 92485,
  "categories" : {
    "doc_count_error_upper_bound" : 0,
    "sum_other_doc_count" : 4780,
    "buckets" : [ {
      "key" : 5053,
      "doc_count" : 21827
    }, {
      "key" : 5413,
      "doc_count" : 15760
    }, {
      "key" : 5057,
      "doc_count" : 12473
    }, {
      "key" : 77978,
      "doc_count" : 11388
    }, {
      "key" : 5030,
      "doc_count" : 9898
    }, {
      "key" : 5055,
      "doc_count" : 2492
    }, {
      "key" : 8543,
      "doc_count" : 2461
    }, {
      "key" : 5684,
      "doc_count" : 2106
    }, {
      "key" : 5050,
      "doc_count" : 2001
    }, {
      "key" : 8544,
      "doc_count" : 1803
    }, {
      "key" : 5049,
      "doc_count" : 1635
    }, {
      "key" : 5054,
      "doc_count" : 1284
    }, {
      "key" : 5035,
      "doc_count" : 977
    }, {
      "key" : 8731,
      "doc_count" : 817
    }, {
      "key" : 8732,
      "doc_count" : 783
    } ]
  }
}    

Возможно липолучить ответ таким образом, чтобы сегменты упорядочивались по category_id или любому другому полю post bucketing , поскольку я хочу выбрать только 15 таких интервалов с максимальным количеством документов.

Также, если возможно, есть способ сделать этооснованный на поле, которое является текстом / строкой.

Я пробовал субагрегацию, но не мог понять это.

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