ES 5.3以后出的新功能。测试demo如下:

下载ES 5.5版本,然后分别本机创建2个实例,配置如下:

  1. cluster.name: xx1
  2. network.host: 127.0.0.1
  3. http.port: 9200
  4. transport.tcp.port: 9300
  1. cluster.name: xx2
  2. network.host: 127.0.0.1
  3. http.port: 9201
  4. transport.tcp.port: 9301

再创建一个实例用于跨集群搜索,配置如下:

  1. http.port: 9202
  2. transport.tcp.port: 9302
  3.  
  4. search:
  5. remote:
  6. cluster_one:
  7. seeds: 127.0.0.1:9300
  8. cluster_two:
  9. seeds: 127.0.0.1:9301

然后写入测试数据 es_data.json:

  1. { "index" : { "_index" : "test2", "_type" : "xx"}}
    { "age" : 100, "name":"bone" }

插入一条数据到9200机器:

  1. curl -XPOST localhost:/_bulk --data-binary @es_data.json

然后写入测试数据 es_data2.json:

  1. { "index" : { "_index" : "test2", "_type" : "xx"}}
    { "age" : 99, "name":"jack" }

同理再插入一条数据到9201机器:

curl -XPOST localhost:/_bulk --data-binary @es_data2.json

执行搜索:

  1. curl -XPOST localhost:/cluster_*:test2/xx/_search?q=*
  2.  
  3. {"took":,"timed_out":false,"_shards":{"total":,"successful":,"failed":},"hits":{"total":,"max_score":1.0,"hits":[{"_index":"cluster_two:test2","_type":"xx","_id":"AV-jy_6M9ed_QHEOL8Zd","_score":1.0,"_source":{ "age" : , "name":"jack" }},{"_index":"cluster_one:test2","_type":"xx","_id":"AV-jy8ivwbfD6QGw1gPg","_score":1.0,"_source":{ "age" : , "name":"bone" }}]}}

可以看到获得了两个集群的搜索数据。

执行聚合:

  1. curl -XPOST localhost:/cluster_*:test2/xx/_search? -d '
  2. {
  3. "aggs": {
  4. "all_age": {
  5. "terms": { "field": "age" }
  6. }
  7. }
  8. }
  9. '

返回:

  1. {"took":,"timed_out":false,"_shards":{"total":,"successful":,"failed":},"hits":{"total":,"max_score":1.0,"hits":[{"_index":"cluster_two:test2","_type":"xx","_id":"AV-jy_6M9ed_QHEOL8Zd","_score":1.0,"_source":{ "age" : , "name":"jack" }},{"_index":"cluster_one:test2","_type":"xx","_id":"AV-jy8ivwbfD6QGw1gPg","_score":1.0,"_source":{ "age" : , "name":"bone" }}]},"aggregations":{"all_age":{"doc_count_error_upper_bound":,"sum_other_doc_count":,
  2.  
  3. "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是可以直接支持跨集群的哈!

ES cross cluster search跨集群查询的更多相关文章

  1. Elasticsearch跨集群搜索(Cross Cluster Search)

    1.简介 Elasticsearch在5.3版本中引入了Cross Cluster Search(CCS 跨集群搜索)功能,用来替换掉要被废弃的Tribe Node.类似Tribe Node,Cros ...

  2. Elasticsearch 搜索模块之Cross Cluster Search(跨集群搜索)

    Cross Cluster Search简介 cross-cluster search功能允许任何节点作为跨多个群集的federated client(联合客户端),与tribe node不同的是cr ...

  3. Elasticsearch:跨集群搜索 Cross-cluster search (CCS)

    转载自:https://blog.csdn.net/UbuntuTouch/article/details/104588232 跨集群搜索(cross-cluster search)使您可以针对一个或 ...

  4. 实现Kubernetes跨集群服务应用的高可用

    在Kubernetes 1.3版本,我们希望降低跨集群跨地区服务部署相关的管理和运营难度.本文介绍如何实现此目标. 注意:虽然本文示例使用谷歌容器引擎(GKE)来提供Kubernetes集群,您可以在 ...

  5. ProxySQL Cluster 高可用集群环境部署记录

    ProxySQL在早期版本若需要做高可用,需要搭建两个实例,进行冗余.但两个ProxySQL实例之间的数据并不能共通,在主实例上配置后,仍需要在备用节点上进行配置,对管理来说非常不方便.但是Proxy ...

  6. elasticsearch跨集群数据迁移

    写这篇文章,主要是目前公司要把ES从2.4.1升级到最新版本7.8,不过现在是7.9了,官方的文档:https://www.elastic.co/guide/en/elasticsearch/refe ...

  7. ProxySQL Cluster 高可用集群 + MySQL MGR环境部署 (多写模式) 部署记录

    文章转载自:https://blog.51cto.com/u_6215974/4937192 ProxySQL 在早期版本若需要做高可用,需要搭建两个实例,进行冗余.但两个ProxySQL实例之间的数 ...

  8. Elasticsearch 主从同步之跨集群复制

    文章转载自:https://mp.weixin.qq.com/s/alHHxXont6XFm_m9PfsGfw 1.什么是跨集群复制? 跨集群复制(Cross-cluster replication, ...

  9. SqlServer跨集群升级

    SqlServer跨集群升级 1.新Server的IP要和旧的在同一网段. 2.安装SQL SERVER(注意:排序要和以前的一样,更改TempDB位置) 3.开启防火墙,并打开1433和5022端口 ...

随机推荐

  1. python多线程编程代码

    参考了这篇文章,写的挺好的. http://blog.csdn.net/abcjennifer/article/details/49474897 import time import threadin ...

  2. 对苹果“五仁”编程语言Swift的简单分析

    对苹果"五仁"编程语言Swift的简单分析 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUHJvdGVhcw==/font/5a6L5 ...

  3. jni javah

    如何通过javah生成jni头文件 1.javah的使用说明:   -classpath 给出包含native接口的java类的.class文件路径 -d / –o 指定生成的头文件的,-d只给出文件 ...

  4. java布局管理

    FlowLayout :组件在一行中按加入的先后顺序从左至右水平排列,排满后折行,每行中的组件都居中排列.BorderLayout:把容器空间划分为北.南.西.东.中五个区,每加入一个组件都应说明把这 ...

  5. springmvc_learn

    https://blog.csdn.net/qq598535550/article/details/51703190 https://github.com/wosyingjun/beauty_ssm

  6. 在js中关于同名变量和函数的地位争夺问题

    先上一段让大家比较蒙圈的代码,接下来再慢慢讲解 <!DOCTYPE html> <html lang="en"> <head> <meta ...

  7. vector迭代器

    https://www.cnblogs.com/quant-lee/p/6618829.html

  8. pyftpdlib 搭建ftp环境

    环境搭建: pythonwindows/linuxpip install pyftpdlib (安装失败请到这里下载:https://pypi.python.org/pypi/pyftpdlib/)一 ...

  9. 【BZOJ4071】【APIO2015】巴邻旁之桥

    题意: Description 一条东西走向的穆西河将巴邻旁市一分为二,分割成了区域 A 和区域 B. 每一块区域沿着河岸都建了恰好 1000000001 栋的建筑,每条岸边的建筑都从 0 编号到 1 ...

  10. [TJOI2015]弦论(后缀数组or后缀自动机)

    解法一:后缀数组 听说后缀数组解第k小本质不同的子串是一个经典问题. 把后缀排好序后第i个串的本质不同的串的贡献就是\(n-sa[i]+1-LCP(i,i-1)\)然后我们累加这个贡献,看到哪一个串的 ...