gpt4 book ai didi

java - 如何在Java中使用elasticsearch

转载 作者:太空宇宙 更新时间:2023-11-04 12:01:26 25 4
gpt4 key购买 nike

我正在尝试用 Java 构建 POST 请求正文,如下所示:

{
"query":{
"filtered":{
"filter":{
"and":[
{"terms":{"primaryType":["container"]}} , {"terms":{"LifeCycleState":["project"]}}
]
},
"query":{"match_all":{}}
}
},
"aggs": {
"status":{ "terms": {"field":"container:status"} }
}
}

到目前为止,这是我所得到的:

final FilterBuilder primaryTypeFilter = FilterBuilders.termsFilter("primaryType", "container");
final FilterBuilder lifeCycleStateFilter = FilterBuilders.termsFilter("LifeCycleState" , "project");

这给我带来了这个:

"terms":{"primaryType":["container"]}
"terms":{"LifeCycleState":["project"]}

我不知道如何从这里继续前进,如何用“and”、“filtered”、“query”等来包装术语。

谢谢。

最佳答案

您正在使用旧版本的elasticsearch。我建议升级。

从 5.0 开始,您必须使用具有 filter 部分的 bool 查询。 https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/java-compound-queries.html#java-query-dsl-bool-query

类似于:

QueryBuilder qb = boolQuery()
.filter(termQuery("primaryType", "container")
.filter(termQuery("LifeCycleState" , "project"));

关于java - 如何在Java中使用elasticsearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40861182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com