SearchRequest request = SearchRequest.of(s -> { s.index("yq_info_data"); s.query(q -> q.match(m -> m .field("content") .query("新华网") ) ); s.from((pageIndex - 1) * pageSize); s.size(pageSize); s.trackTotalHits(t -> t.enabled(true)); return s; });如何根据类型为List的keyword查询列表
时间: 2024-02-14 07:31:51 浏览: 50
要根据类型为List的关键字进行查询列表,你可以使用terms查询。下面是一个示例代码片段,展示如何使用terms查询来实现此目的:
```
List<String> keywords = Arrays.asList("新华网", "CSDN", "AI");
SearchRequest request = SearchRequest.of(s -> {
s.index("yq_info_data");
s.query(q -> q.terms(t -> t.field("content").terms(keywords)));
s.from((pageIndex - 1) * pageSize);
s.size(pageSize);
s.trackTotalHits(t -> t.enabled(true));
return s;
});
```
在上面的示例中,我们创建了一个包含多个关键字的List:`List<String> keywords`。然后,我们使用terms查询来将这些关键字应用于content字段。请注意,terms查询会匹配包含任何一个关键字的文档。
最后,我们将查询请求的其他参数(如from、size和trackTotalHits)设置为所需的值。
请根据你的实际需求修改关键字列表和其他查询参数。
相关问题
新的对话 SearchRequest request = SearchRequest.of(s -> { s.index("yq_info_data"); s.from((pageIndex - 1) * pageSize); s.size(pageSize); s.trackTotalHits(t -> t.enabled(true)); return s; });加一个查询条件 服务器es怎么在本地可视化 服务器es报"Timeout connecting to [/172.16.1.221:9200]"是怎么回事 清除历史记录 模型设置 SearchRequest request = SearchRequest.of(s -> { s.index("yq_info_data"); s.query(q -> q.match(m -> m .field("content") .query("新华网") ) ); s.from((pageIndex - 1) * pageSize); s.size(pageSize); s.trackTotalHits(t -> t.enabled(true)); return s; });运用ES8.2.2如何根据类型为List的keyword查询列表
要在 Elasticsearch 8.2.2 中根据类型为List的关键字查询列表,你可以使用terms查询。以下是示例代码,展示了如何使用terms查询来实现此目的:
```java
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.builder.SearchSourceBuilder;
List<String> keywords = Arrays.asList("新华网", "CSDN", "AI");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(QueryBuilders.termsQuery("content", keywords));
searchSourceBuilder.from((pageIndex - 1) * pageSize);
searchSourceBuilder.size(pageSize);
searchSourceBuilder.trackTotalHits(true);
SearchRequest request = new SearchRequest("yq_info_data");
request.source(searchSourceBuilder);
SearchResponse response = client.search(request, RequestOptions.DEFAULT);
```
在上面的示例中,我们使用termsQuery构建器来创建一个terms查询,将关键字列表应用于content字段。请注意,terms查询将匹配包含任何一个关键字的文档。
然后,我们使用SearchSourceBuilder来构建搜索请求,并设置查询、分页和其他参数。
最后,我们将SearchRequest发送给Elasticsearch客户端执行搜索请求。
请根据你的实际需求修改关键字列表和其他查询参数。
SearchRequest request = SearchRequest.of(s -> { s.index("yq_info_data"); s.query(q -> q.match(m -> m .field("content") .query("keyword") ) ); s.from((pageIndex - 1) * pageSize); s.size(pageSize); s.trackTotalHits(t -> t.enabled(true)); return s; });怎么返回List<Map<String, Object>>类型
要将搜索结果返回为 List<Map<String, Object>> 类型,您可以使用 Elasticsearch 的搜索 API 执行搜索请求,并将结果转换为所需的类型。以下是一个示例代码:
```java
SearchRequest request = SearchRequest.of(s -> {
s.index("yq_info_data");
s.query(q -> q
.match(m -> m
.field("content")
.query("keyword")
)
);
s.from((pageIndex - 1) * pageSize);
s.size(pageSize);
s.trackTotalHits(t -> t.enabled(true));
return s;
});
SearchResponse response = client.search(request);
List<Map<String, Object>> resultList = new ArrayList<>();
for (SearchHit hit : response.getHits()) {
Map<String, Object> resultMap = hit.getSourceAsMap();
resultList.add(resultMap);
}
return resultList;
```
请确保将 `client` 替换为您的 Elasticsearch 客户端实例。在上述示例中,我们遍历搜索结果的每个 `SearchHit`,并将每个 hit 的源数据转换为 `Map<String, Object>` 类型,并添加到结果列表中。最后,返回结果列表。
阅读全文
相关推荐

















