Elasticsearch:
伪码:select all docs that have fieldName=value group by Id
我该如何将其转移到elasticsearch
答案 0 :(得分:2)
我认为您希望通过Id获取应用过滤器和分组的文档。
以下是示例查询(如sql的智能翻译)
POST index/type/_search
{
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"term": {
"fieldname": "vlaue"
}
}
}
},
"aggs": {
"groupById": {
"terms": {
"field": "Id",
"size": 100
},
"aggs": {
"select-all-query": {
"top_hits": {
"size": 100
}
}
}
}
}
}
更改要控制的尺寸参数,需要多少文档。
参考
希望这有帮助!!感谢
答案 1 :(得分:1)
你应该看看aggregations。
例如,在对具有字段" fieldName"的文档进行过滤之后,此查询按城市分组;包含"值" :
GET /{index}/{type}/_search
{
"aggs":{
"filter_by_fieldname":{
"filter":{
"term":{
"fieldName":"value"
}
},
"aggs":{
"group_by_city": {
"terms": {
"field": "city"
}
}
}
}
}
}
请注意,默认设置会导致只返回前10个城市(默认大小),但您可以调整它。