Почемуasticsearch не может поддерживать min_doc_count и упорядочивать по _count asc? - PullRequest
0 голосов
/ 04 ноября 2019

Требования:

group by hldId having count(*) = 2

Запрос Elasticsearch:

"aggs": {
    "groupByHldId": {
        "terms": {
            "field": "hldId",
            "min_doc_count": 2,
            "order" : { "_count" : "asc" }
        }            
    }
}

, но записи не возвращаются

  "aggregations" : {
    "groupByHldId" : {
      "doc_count_error_upper_bound" : -1,
      "sum_other_doc_count" : 2660,
      "buckets" : [ ]
    }
  }

, но при изменении на desc он имеетreturn

   "buckets" : [
        {
          "key" : 200035075,
          "doc_count" : 355
        },

или если без min_doc_count, он также имеет return

"buckets" : [    
    {
      "key" : 200000061,
      "doc_count" : 1
    },

Так почему оба направления mid_doc_count и asc возвращают пустое?

1 Ответ

0 голосов
/ 04 ноября 2019

Вы можете попробовать вот так, bucket selector с пользовательским script.

 {
  "aggs": {
    "countfield": {
      "terms": {
        "field": "hldId",
        "size": 100,
        "order": {
          "_count": "desc"
        }
      },
      "aggs": {
        "criticals": {
          "bucket_selector": {
            "buckets_path": {
              "doc_count": "_count"
            },
            "script": "params.doc_count==2"
          }
        }
      }
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...