ES cross cluster search跨集群查询
2017-11-10 10:58
363 查看
ES 5.3以后出的新功能。测试demo如下:
下载ES 5.5版本,然后分别本机创建2个实例,配置如下:
再创建一个实例用于跨集群搜索,配置如下:
然后写入测试数据 es_data.json:
插入一条数据到9200机器:
然后写入测试数据 es_data2.json:
同理再插入一条数据到9201机器:
curl -XPOST localhost:9201/_bulk --data-binary @es_data2.json
执行搜索:
可以看到获得了两个集群的搜索数据。
执行聚合:
返回:
可以看到聚合的返回包含了两个集群的合并结果。
参考:
https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-cross-cluster-search.html https://www.elastic.co/guide/en/kibana/current/management-cross-cluster-search.html kibana是可以直接支持跨集群的哈!
下载ES 5.5版本,然后分别本机创建2个实例,配置如下:
cluster.name: xx1 network.host: 127.0.0.1 http.port: 9200 transport.tcp.port: 9300
cluster.name: xx2 network.host: 127.0.0.1 http.port: 9201 transport.tcp.port: 9301
再创建一个实例用于跨集群搜索,配置如下:
http.port: 9202 transport.tcp.port: 9302 search: remote: cluster_one: seeds: 127.0.0.1:9300 cluster_two: seeds: 127.0.0.1:9301
然后写入测试数据 es_data.json:
{ "index" : { "_index" : "test2", "_type" : "xx"}} { "age" : 100, "name":"bone" }
插入一条数据到9200机器:
curl -XPOST localhost:9200/_bulk --data-binary @es_data.json
然后写入测试数据 es_data2.json:
{ "index" : { "_index" : "test2", "_type" : "xx"}} { "age" : 99, "name":"jack" }
同理再插入一条数据到9201机器:
curl -XPOST localhost:9201/_bulk --data-binary @es_data2.json
执行搜索:
curl -XPOST localhost:9202/cluster_*:test2/xx/_search?q=* {"took":23,"timed_out":false,"_shards":{"total":10,"successful":10,"failed":0},"hits":{"total":2,"max_score":1.0,"hits":[{"_index":"cluster_two:test2","_type":"xx","_id":"AV-jy_6M9ed_QHEOL8Zd","_score":1.0,"_source":{ "age" : 99, "name":"jack" }},{"_index":"cluster_one:test2","_type":"xx","_id":"AV-jy8ivwbfD6QGw1gPg","_score":1.0,"_source":{ "age" : 100, "name":"bone" }}]}}
可以看到获得了两个集群的搜索数据。
执行聚合:
curl -XPOST localhost:9202/cluster_*:test2/xx/_search? -d ' { "aggs": { "all_age": { "terms": { "field": "age" } } } } '
返回:
{"took":25,"timed_out":false,"_shards":{"total":10,"successful":10,"failed":0},"hits":{"total":2,"max_score":1.0,"hits":[{"_index":"cluster_two:test2","_type":"xx","_id":"AV-jy_6M9ed_QHEOL8Zd","_score":1.0,"_source":{ "age" : 99, "name":"jack" }},{"_index":"cluster_one:test2","_type":"xx","_id":"AV-jy8ivwbfD6QGw1gPg","_score":1.0,"_source":{ "age" : 100, "name":"bone" }}]},"aggregations":{"all_age":{"doc_count_error_upper_bound":0,"sum_other_doc_count":0, "buckets":[{"key":99,"doc_count":1},{"key":100,"doc_count":1}]}}}
可以看到聚合的返回包含了两个集群的合并结果。
参考:
https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-cross-cluster-search.html https://www.elastic.co/guide/en/kibana/current/management-cross-cluster-search.html kibana是可以直接支持跨集群的哈!
相关文章推荐
- Elasticsearch range 查询 ES 5.x TODO
- spark写数据到装有searchgard的ES集群
- ES权威指南_01_get start_02 Life Inside a Cluster(ES集群内部原理)
- elasticsearch+logstash之间传输效率以及es-sql查询效率简单测试
- 【ELK】03、ES集群及ES查询
- ES Java API_基于search template实现按品牌分页查询模板
- ELK研究(一):elasticsearch java api接口操作ES集群 ---TransportClient的使用介绍 bulk批量提交数据
- ELK研究(一):elasticsearch java api接口操作ES集群 ---TransportClient的使用介绍 bulk批量提交数据
- es5.2安装search-guard插件后,es-head插件获取不到集群信息
- ElasticSearch学习(3)--使用elsticsearch-head连接es、创建es集群
- Elasticsearch之重要核心概念(cluster(集群)、shards(分配)、replicas(索引副本)、recovery(据恢复或叫数据重新分布)、gateway(es索引的持久化存储方式)、discovery.zen(es的自动发现节点机制机制)、Transport(内部节点或集群与客户端的交互方式)、settings(修改索引库默认配置)和mappings)
- ES集群服务器CPU负载瞬间飚高分析
- ES Head is not working with elasticsearch-1.4.0.Beta1
- ES集群服务器CPU负载瞬间飚高分析
- abap如何实现支持通配符*模糊查询(support wildcard search)
- 开山之作,简单说说什么是"集群(Cluster)"
- ElasticSearch Java API(一)连接集群
- 给redis cluster集群加上认证功能
- 关于redis集群 no reachable node in cluster的错误
- Elasticsearch之初探ES集群