簡體   English   中英

Elasticsearch查詢按唯一字段過濾

[英]Elasticsearch query filter by unique field

使用Elasticsearch,我可以映射員工,每個員工都屬於某個團隊。 每個團隊都應該有一個團隊負責人,我需要對此進行驗證。 有沒有一種方法可以自行搜索每個團隊,但是在一個查詢中,以確認它是否具有字段為“ is_leader”的員工:true? 我想獲得所有缺少團隊領導者的團隊的成果。

{
{
            "_type": "employee",
            "name": "Jade",
            "team": "A",
            "is_leader": false,
},
{
            "_type": "employee",
            "name": "Jack",
            "team": "A",
            "is_leader": false,
},
{           "_type": "employee",
            "name": "Sarah",
            "team": "A",
            "is_leader": true,
},
{           "_type": "employee",
            "name": "Jim",
            "team": "B",
            "is_leader": false,
},
{           "_type": "employee",
            "name": "Don",
            "team": "B",
            "is_leader": false,
},
{           "_type": "employee",
            "name": "Jess",
            "team": "B",
            "is_leader": false,
},
}

您可以在team字段上使用terms匯總來分隔所有團隊,然后在is_leader字段上使用另一個terms子匯總。 這樣,您將獲得每個團隊的領導者與非領導者的計數。 領導者為0的團隊將脫穎而出:

{
  "size": 0,
  "aggs": {
    "teams": {
      "terms": {
        "field": "team"
      },
      "aggs": {
        "leaders": {
          "terms": {
            "field": "is_leader"
          }
        }
      }
    }
  }
}

暫無
暫無

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

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