在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()) {
// 处理每个命中的文档
希望这些信息对你有所帮助。