簡體   English   中英

如果值不是elasticsearch中的null,如何計算字段

[英]How to count a field if value is not null in elasticsearch

我已經在 ElasticSearch 中索引了一些文檔。短視圖如下所示:

{
  "tenant_id":"abcd1234"
  "provider_id":"3456"
   .
   .
   .
   "doctor_summary": ["line1", "line2", "line3"] OR it could be null.
}

如果不是 null,我想將此列表計算為 1,

     query_template = {

        "bool":{
            "must":[
                {"term":{"tenant_id.keyword":tenant_id}},
                {"term":{"provider_id.keyword":provider_id}},
                {"range":{"visit_date":{"gte":from_date,"lte":to_date}}},
                
            ],
            "filter":[]
        
        }
    }



aggs_query = {
   "doctor_summary_count":{
            "value_count":{"field":"doctor_summary.keyword"}
        }
}    

res = CLIENT.search(index = config['elasticsearch']['abcd'],
                        query = query_template,
                        size = 10000,
                        aggs = aggs_query)

調用此聚合查詢后,它給出的結果為(列表大小 * total doctor_summary 字段)。

例如:上述文檔的上述查詢結果應為 1。(因為它不為空)。 但它給出了 3(因為列表包含 3 行。)

您可以在聚合中使用exist 查詢filter aggregation

詢問:

{
  "aggs": {
    "count": {
      "filter": {
       "exists": {
         "field": "doctor_summary.keyword"
       }
      }
    }
  }
}

回復:

"aggregations" : {
    "count" : {
      "doc_count" : 1
    }
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM