AND Query使用Elastic Search Java API

时间:2014-12-22 10:18:39

标签: java elasticsearch

我们如何使用Java API查询弹性文档。

对于E.g请考虑以下类型'员工',其值低于

{ "name" : "Jhon" , "department": "IT" , "passport":"XXXXXXX" }
{ "name" : "Sathish" , "department": "IT" }
{ "name" : "Mike" , "department": "Admin" , "passport":"YYYYYYYY" }
{ "name" : "July" , "department": "IT" ,"passport":"ZZZZZZ"}

现在,我们需要查询索引以查找具有护照的“IT”员工(如部门==“IT”和护照存在)。

如何使用Elastic Search Java API实现此目的?

1 个答案:

答案 0 :(得分:0)

以下是searchrequest查询构建器的代码及其响应。

SearchRequestBuilder searchRequest = client.prepareSearch("employees")
            .setPostFilter(FilterBuilders.andFilter(
                    FilterBuilders.termFilter("department", "it"),
                    FilterBuilders.existsFilter("passport")
            ));
SearchResponse searchResponse = searchRequest.get();

而不是使用“和过滤器”来查找具有护照的“IT”部门的文件。

我建议您使用汇总来查找有护照的员工。