java-high-level-rest-client提供了一种使用其代码下方显示的术语在elasticsearch上进行搜索的方法
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.query(QueryBuilders.termQuery("user", "kimchy"));
但我想对多个字段进行查询,如下所示:“user”=“kimchy”和/或“city”=“london”。
我看到 multi-search查询和多重匹配查询,但它们没有做我想要的。
感谢您的帮助!!
最佳答案
试试这个:
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
boolQueryBuilder
.filter(QueryBuilders.termQuery("user", "kimchy"))
.filter(QueryBuilders.termQuery("city", "london"));
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.query(boolQueryBuilder);
BoolQueryBuilder
上的filter/must/should
方法,取决于你想要哪个上下文,如果你想要“或”,你可以使用should
.
关于java - 使用 Java 高级 REST 客户端进行 ElasticSearch 多术语查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58246328/