[英]Aggregations elasticsearch 5
在我的彈性搜索中,索引具有以下類型的條目。
{
"_index": "employees",
"_type": "employee",
"_id": "10000",
"_score": 1.3640093,
"_source": {
"itms": {
"depc": [
"IT",
"MGT",
"FIN"
],
"dep": [
{
"depn": "Information Technology",
"depc": "IT"
},
{
"depn": "Management",
"depc": "MGT"
},
{
"depn": "Finance",
"depc": "FIN"
},
{
"depn": "Finance",
"depc": "FIN"
}
]
}
}
}
現在,我試圖獲取唯一的部門列表,包括部門代碼(depc)和部門名稱(depn)。
我正在嘗試跟蹤,但是沒有得到預期的結果。
{
"size": 0,
"query": {},
"aggs": {
"departments": {
"terms": {
"field": "itms.dep.depc",
"size": 10000,
"order": {
"_term": "asc"
}
},
"aggs": {
"department": {
"terms": {
"field": "itms.dep.depn",
"size": 10
}
}
}
}
}
}
任何建議表示贊賞。
謝謝
從您的agg查詢來看, itms.dep
的映射類型似乎是對象,而不是嵌套的
Lucene沒有內部對象的概念,因此Elasticsearch將對象層次結構簡化為字段名稱和值的簡單列表。
因此,您的文檔已在內部轉換為:
{
"depc" : ["IT","MGT","FIN"],
"dep.depc" : [ "IT","MGT","FIN"],
"dep.depn" : [ "Information Technology", "Management", "Finance" ]
}
即您已經失去了depc
和depn
之間的關聯
要解決此問題:
現有的agg查詢的結構對我來說似乎很好,但是您必須在映射更新后將其轉換為嵌套聚合
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.