我有一個要求,我需要在每個區域和地區根據給定日期來groupby status_value。對於同樣的我寫了一個查詢,它不完全在ES中工作。如果有人對此進行研究並向我提供解決方案,這將是一個很大的幫助。在彈性搜索中的多個字段上的groupby功能
注意:我想得到最後一天(即前一天)的結果。
{
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"term": {
"UsagePoint_Asset_lifecycle_installationDate": "2014-07-13T16:55:00.0-07:00"
}
}
}
},
"aggs" : {
"product" : {
"terms" : {
"field" : "UsagePoint_ServiceLocation_region"
},
"aggs" : {
"material" : {
"terms" : {
"field" : "UsagePoint_status_value"
}
}
}
}
}
}
我的SQL查詢可能會象下面這樣:
select count(status_value)
from products
where date = "yesterday"
group by region , date
請檢查下面的查詢工作,但我想獲得的值特定日期或日期。
{
"agg1": {
"terms": {
"field":"UsagePoint_Asset_lifecycle_installationDate"
},
"aggs" : {
"product" : {
"terms" : {
"field" : "UsagePoint_ServiceLocation_region"
},
"aggs" : {
"material" : {
"terms" : {
"field" : "UsagePoint_status_value"
}
}
}
}
}
}
}
這應該工作得很好,爲什麼你覺得它不給正確的結果呢? –
在日期字段之間的術語過濾器將不會主要工作,但然後我只能看到映射後也可以告訴任何東西 –
其實,ES說有一些語法錯誤..我需要得到的具體日期或日期的細節..我已經嘗試了一個更多的查詢..你可以請檢查問題和建議.. @Vineeth Mohan – santoshM