Java Elasticsearch:如何在查询中使用聚合?
我是弹性搜索的新手,我正在尝试使用聚合从弹性搜索中查询文档。查询如下所示:Java Elasticsearch:如何在查询中使用聚合?,java,json,
elasticsearch,Java,Json,
elasticsearch,我是弹性搜索的新手,我正在尝试使用聚合从弹性搜索中查询文档。查询如下所示: { “大小”:25000, “查询”:{ “过滤”:{ “查询”:{ “布尔”:{ “不得”:{ “期限”:{ “vlanId”:[ 2. 4. 8. 12, 16, 28, 0, 20, 24, 44, 544 ] } } } }, “过滤器”:{ “布尔”:{ “必须”:{ “存在”:{ “字段”:“ipv4” } } } } } }, “聚合”:{ “vlan_ID”:{ “条款”:{ “字段”:“vlanId”
{
“大小”:25000,
“查询”:{
“过滤”:{
“查询”:{
“布尔”:{
“不得”:{
“期限”:{
“vlanId”:[
2.
4.
8.
12,
16,
28,
0,
20,
24,
44,
544
]
}
}
}
},
“过滤器”:{
“布尔”:{
“必须”:{
“存在”:{
“字段”:“ipv4”
}
}
}
}
}
},
“聚合”:{
“vlan_ID”:{
“条款”:{
“字段”:“vlanId”
},
“聚合”:{
“顶部”:{
“热门歌曲”:{
“from”:0,
“尺寸”:10,
“解释”:正确
}
}
}
}
}
}
执行之后,我得到执行阶段[query]失败的,所有碎片都失败了
异常。我正在使用JavaAPI和ElasticSearch1.4v。任何线索都是非常感谢的
以下是示例JSON:
{ "_index":"vlan-active", "_source":{ "vlanId":8, "port":3, "vlanIP":"10.16.8.102", "ipv4":"10.16.8.102", "ipv6":"", "mac":"", "vendorName":"","os":""}}
您的查询以方括号(“[]”)开始和结束,这就是它不工作的原因。DSL查询应该以大括号开始(即“{}”)
编辑:消除了由于我的反问句引起的混淆
术语
查询将字段与单个值匹配。
为了匹配多个值,如子句中的,应使用术语
,而不是术语
我将关键字term
更改为terms
,并使其正常工作。能否包括索引配置?示例数据?是否有任何异常原因?@TIM:添加了示例JSON。这是一个修辞问题,因为他的查询无法运行。不过,说得好,因为这让人困惑,我将编辑我的帖子,澄清这是一个错误answer@clearlight:很公平,我最近开始活跃起来,我不是100%遵守规则。谢谢你的澄清!方法添加了sqaure括号!对不起,我的错!如果使用大括号,则查询无法工作。