ElasticsearchRestTemplate 7.12 多个 Filter 查询示例
在 ElasticsearchRestTemplate 中,可以使用 QueryBuilder 来构建多个 filter 的查询条件。例如,我们可以使用 BoolQueryBuilder 来构建复合查询,然后将多个 filter 加入到其中,如下所示:
// 创建 BoolQueryBuilder 对象
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
// 添加多个 filter 条件
boolQueryBuilder.filter(QueryBuilders.termQuery('field1', 'value1'));
boolQueryBuilder.filter(QueryBuilders.rangeQuery('field2').gte('value2'));
boolQueryBuilder.filter(QueryBuilders.matchQuery('field3', 'value3'));
// 构建查询请求
NativeSearchQuery query = new NativeSearchQueryBuilder()
.withQuery(boolQueryBuilder)
.build();
// 执行查询
SearchHits<YourEntity> hits = elasticsearchRestTemplate.search(query, YourEntity.class);
在上面的示例中,我们使用了三个不同的 filter 条件:termQuery、rangeQuery 和 matchQuery,它们分别代表精确匹配、范围匹配和全文搜索。这些条件将被添加到一个 BoolQueryBuilder 对象中,并作为查询的一部分提交给 Elasticsearch。
原文地址: https://www.cveoy.top/t/topic/nAKq 著作权归作者所有。请勿转载和采集!