假设我们有一个sql表存储信息,例如(销售时间,书籍,销售人员),它存储一个销售人员销售该书的时间。我们希望有一个受大多数销售人员销售的热门图书清单。
sql就像这样
select book, count (sale-person)
from select distinct (book, sale-person) from table
group by book
order desc
如何在elasticsearch中实现此类搜索?
假设我们的数据是这样的
{ "time": "time-value",
"book" : "book name",
"sales" : "person"
}
感谢。
答案 0 :(得分:1)
如果我理解得很好,你想做一个嵌套聚合吗?
类似的东西:
GET /my_index/_search
{
"size": 0,
"query": {
"match_all" : {}
},
"aggs": {
"time_windows": {
"date_histogram": {
"field": "time",
"interval" : "1h"
},
"aggs": {
"books": {
"terms": {
"size": 5,
"field": "book"
}
}
}
}
}
}