一架梯子,一头程序猿,仰望星空!

Java Elasticsearch terms查询


Elasticsearch terms查询,用于实现类似SQL的in语句,匹配其中一个值即可。

构建terms查询

实现类似SQL的in语句

// 方式1
TermsQueryBuilder termsQueryBuilder = new TermsQueryBuilder("order_id", 1,2,3,4,5);

// 方式2
TermsQueryBuilder termsQueryBuilder = QueryBuilders.termsQuery("order_id", 1,2,3,4,5);

类似SQL:order_id in (1,2,3,4,5)

创建SearchRequest

Java 所有的ES查询请求都是通过SearchRequest对象进行设置,因此需要实例化SearchRequest对象,设置query参数。

SearchRequest searchRequest = new SearchRequest();

// 通过SearchSourceBuilder构建搜索参数
SearchSourceBuilder builder = new SearchSourceBuilder();
// 设置query参数,绑定前面创建的Query对象
builder.query(termsQueryBuilder);

// 设置SearchRequest搜索参数
searchRequest.source(builder);

执行请求

// 执行ES请求
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);

提示: 如何处理查询结果,请参考 Java ES查询基本写法