Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Elasticsearch:如何在查询中使用聚合?_Java_Json_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Java,Json,elasticsearch" /> elasticsearch,Java,Json,elasticsearch" />

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括号!对不起,我的错!如果使用大括号,则查询无法工作。