Cross-cluster search如何实现
时间: 2023-07-07 10:28:07 浏览: 55
跨集群搜索(Cross-cluster search)可以通过 Elasticsearch 的跨集群搜索 API 来实现。要使用跨集群搜索 API,您需要在每个参与搜索的集群中启用跨集群搜索功能,并配置好集群之间的信任关系。然后,您可以通过在搜索请求中指定要搜索的索引和集群来发起跨集群搜索请求。Elasticsearch 会将请求发送到每个集群并将结果合并为单个响应。以下是一个使用跨集群搜索 API 的示例请求:
```
GET /_search
{
"query": { "match": { "message": "error" } },
"index": "logs-*",
"max_concurrent_shard_requests": 5,
"preference": "_local",
"ccs_minimize_roundtrips": true,
"ccs_expand_wildcards": "all",
"ccs_rewrite": "none",
"ccs_total_hits_as_int": true,
"ccs_request_timeout": "30s",
"ccs_scroll": "1m",
"ccs_request_cache": true,
"ccs_params": {
"cluster_one": {
"cluster": "cluster-one",
"indices": "logs-2021.01.*",
"preference": "local",
"routing": "1234",
"ignore_unavailable": true,
"ignore_throttled": true
},
"cluster_two": {
"cluster": "cluster-two",
"indices": "logs-2021.02.*",
"preference": "local",
"routing": "5678",
"ignore_unavailable": true,
"ignore_throttled": true
}
}
}
```
此示例请求将在两个名为 cluster-one 和 cluster-two 的 Elasticsearch 集群中搜索名为 logs-* 的索引。在跨集群搜索请求中,您可以指定多个集群和索引,以便在多个集群中搜索多个索引。