我想从Elasticsearch
获取结果作为Sql Query
select distinct(id) from table where E_id in (5,6) and P_id=54
我需要构建代码块以使用elasticsearch中的聚合获取不同的值,如下所示
GET /Index/Type/_search?search_type=count
{
"aggs": {
"my_fields": {
"terms": {
"field": "ID",
"size": 0
}
}
}
}
我有另一个代码块,它执行where
查询的SQL
子句作业
GET /index/type/_search
{
"query": {
"bool": {
"must": [
{
"terms": {
"ID": [ "5","6" ]
}
},
{
"terms": {
"ProjectID": [ "54"]
}
}
]
}
}
}
如何整合这两个块并使用elasticsearch中的where
子句获得不同的结果。
答案 0 :(得分:1)
你非常接近。只需合并query
和aggregation
。
{
"query": {
"bool": {
"must": [
{
"terms": {
"ID": [
"5",
"6"
]
}
},
{
"terms": {
"ProjectID": [
"54"
]
}
}
]
}
},
"aggs": {
"my_fields": {
"terms": {
"field": "ID",
"size": 0
},
"aggs":{
"top_hits_log" :{
"top_hits" :{
"size" :1
}
}
}
}
}
}
关于top_hits
here