繁体   English   中英

如何在Java中使用elasticsearch

[英]How to use elasticsearch in Java

我正在尝试用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"]}

我不知道如何从这里前进,如何用“和”,“过滤”,“查询”等包装术语。

谢谢。

您正在使用旧版本的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"));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM