Elasticsearch通过RESTful API 获取索引和属性信息

最近有个需求是查询es集群下所有的索引信息,根据索引再查询索引的属性信息;不巧的是我用的es 6.1.3版本,采用的es最新推荐的RestHighLevelClient方式进行操作,由于这个方式应该是刚从6版本诞生,正好缺少查询索引的函数,仅有删除索引的方法,

如图

也确定了是6.4版本后才支持检索所有索引的api,没的办法,es版本是不能轻易换的,只能继续探索。。。 

翻阅了众多博客文档,皆无办法,直到后来在Elastic HD发现了有获取所有索引的地方,仔细一看还真是有提供的http api; 

所以也就有了这方面解决办法的入口,简单整理一下后就记录一下

1.获取所有es的索引信息

http://host:9200/_cat/indices?v

 终于算是拿到了所有的索引,如果只是看的话完全没问题,但是想拿到所有的索引名,返回的数据又是这么个,java尝试各种解析都不得行,百度了半天也没找到好的办法。后来又是想到了ElasticHD,看看他是怎么实现的,下载了ElasticHD的源码,终于找到。。。

  后面加个参数即可

http://host:9200/_cat/indices?format=json

最终返回的结果 ,json格式,再说不会解析就过分了哈!

 2.根据索引名称获取索引的属性信息.

http://host:9200/索引名?pretty=true

 ?pretty=true 意思是  是否美化格式 ,不加也可。。。

重点就介绍这两个,其他的还有不少,大家可自行去网上查阅 。如有问题可以留言讨论!

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,您的问题有点多,我会依次回答: (1)OpenStack Swift 是一种分布式对象存储系统,可以存储和检索大量非结构化数据,如图片、视频和文本文件等。它由多个组成部分组成,包括代理服务器、存储节点、认证服务器和管理服务器等。代理服务器接收来自客户端的请求,并将其转发到存储节点,存储节点则负责实际的数据存储和检索。认证服务器用于身份认证,而管理服务器则用于管理和监控整个系统。 (2)要在 Docker 中部署 Elastic Search,您需要使用 Docker Compose 文件来定义 Elastic Search 服务。在 Compose 文件中,您可以指定 Elastic Search 的版本、端口号、volumes 等配置信息。然后,使用 Docker Compose 命令来启动 Elastic Search 服务即可。以下是一个示例 Compose 文件: ``` version: '2' services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:7.9.3 container_name: elasticsearch environment: - discovery.type=single-node ports: - 9200:9200 - 9300:9300 volumes: - esdata:/usr/share/elasticsearch/data volumes: esdata: ``` (3)Elastic Search 是一个分布式的开源搜索和分析引擎,可以快速、准确地搜索和分析大量非结构化数据。它支持全文搜索、实时搜索、复杂的聚合查询等功能,可以用于构建各种类型的应用程序,如电子商务网站、社交媒体平台、日志分析工具等。 (4)要使用 RESTful API 操作 Elastic Search,您需要首先了解 Elastic Search 的索引文档的概念。索引是一组具有相似特征的文档的集合,而文档则是存储在索引中的单个记录。然后,您可以使用 RESTful API 发送 HTTP 请求来执行各种操作,如创建索引、添加文档、更新文档、删除文档等。以下是一个示例请求: ``` PUT /my_index { "settings": { "number_of_shards": 1, "number_of_replicas": 0 } } ``` (5)如果您使用 Java 开发应用程序,并且想使用 Elastic Search 进行数据存储和检索,可以使用 Java API。使用 Java API,您可以轻松地进行索引文档操作,如创建索引、添加文档、更新文档、删除文档等。以下是一个示例代码片段: ``` RestHighLevelClient client = new RestHighLevelClient( RestClient.builder(new HttpHost("localhost", 9200, "http"))); IndexRequest request = new IndexRequest("my_index"); request.id("1"); request.source("field1", "value1", "field2", "value2"); IndexResponse response = client.index(request, RequestOptions.DEFAULT); ``` (6)要在 Docker 中部署 Kibana,您可以使用类似的方式。您需要创建一个 Docker Compose 文件,指定 Kibana 的版本、端口号、Elastic Search 的地址等配置信息。以下是一个示例 Compose 文件: ``` version: '2' services: kibana: image: docker.elastic.co/kibana/kibana:7.9.3 container_name: kibana environment: - ELASTICSEARCH_HOSTS=http://elasticsearch:9200 ports: - 5601:5601 ``` 然后,使用 Docker Compose 命令启动 Kibana 服务即可。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值