es8.0 Java 查询多词条
时间: 2023-10-16 13:09:04 浏览: 147
在 Elasticsearch 8.0 中,您可以使用布尔查询(bool query)来查询多个词条。以下是一个示例 Java 代码,可以查询多个词条:
```java
RestHighLevelClient client = new RestHighLevelClient(
RestClient.builder(new HttpHost("localhost", 9200, "http")));
SearchRequest searchRequest = new SearchRequest("your_index_name");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
QueryBuilder queryBuilder = QueryBuilders.boolQuery()
.must(QueryBuilders.termQuery("field1", "value1"))
.must(QueryBuilders.termQuery("field2", "value2"))
.mustNot(QueryBuilders.termQuery("field3", "value3"))
.should(QueryBuilders.termQuery("field4", "value4"))
.filter(QueryBuilders.rangeQuery("field5").from("value5").to("value6"));
searchSourceBuilder.query(queryBuilder);
searchRequest.source(searchSourceBuilder);
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
```
在上面的代码中,我们使用 `QueryBuilders.boolQuery()` 创建一个布尔查询,并使用 `must`、`mustNot`、`should`、`filter` 方法添加多个词条查询条件。其中:
- `must` 表示查询结果必须同时满足该条件;
- `mustNot` 表示查询结果必须不满足该条件;
- `should` 表示查询结果可以满足该条件,但不是必须的;
- `filter` 表示查询结果必须满足该条件,但不计入查询得分。
您可以根据实际需求选择不同的方法来组合多个词条查询条件。
阅读全文