java操作es多索引联合查询

在Java中操作Elasticsearch多索引联合查询,可以使用Elasticsearch Java API中的MultiSearch API。

MultiSearch API允许您发送多个搜索请求,并将它们的结果合并到一个结果中。您可以为每个搜索请求设置不同的索引和查询参数,以便查询多个索引。

以下是一个使用MultiSearch API进行多索引联合查询的示例代码:

import org.elasticsearch.action.search.MultiSearchResponse;
import org.elasticsearch.action.search.SearchRequestBuilder;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.Client;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.SearchHit;
// 创建客户端
Client client = ...
// 构造查询请求
SearchRequestBuilder sr1 = client.prepareSearch("index1")
        .setQuery(QueryBuilders.matchQuery("field1", "value1"));
SearchRequestBuilder sr2 = client.prepareSearch("index2")
        .setQuery(QueryBuilders.matchQuery("field2", "value2"));
// 发送多个查询请求
MultiSearchResponse sr = client.prepareMultiSearch().add(sr1).add(sr2).get();
// 处理查询结果
for (MultiSearchResponse.Item item : sr.getResponses()) {
    SearchResponse response = item.getResponse();
    for (SearchHit hit : response.getHits().getHits()) {
        // 处理每个命中的文档

希望这些信息对你有所帮助。

  •