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>>类型
时间: 2024-02-14 11:25:53 浏览: 103
letterboxd-rs:Letterboxd API,用于访问Rust中Letterboxd.com网站上的数据
要将搜索结果返回为 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>` 类型,并添加到结果列表中。最后,返回结果列表。
阅读全文