elasticsearch JSON格式的Elasticsearch cat索引,elasticsearch,elasticsearch" /> elasticsearch JSON格式的Elasticsearch cat索引,elasticsearch,elasticsearch" />

elasticsearch JSON格式的Elasticsearch cat索引

elasticsearch JSON格式的Elasticsearch cat索引,elasticsearch,elasticsearch,使用Elasticsearch 1.7,我希望看到JSON格式的\u cat/index结果。我明白,但是有没有一种方法可以使用Elasticsearch API将其转换为JSON?看起来我可以使用/*/\u别名获得我需要的内容,并使用响应的所有键,Per: JSON非常适合计算机。即使打印得很好,试图在数据中找到关系也是乏味的。人类的眼睛,尤其是在观看ssh终端时,需要紧凑且对齐的文本。cat API旨在满足这一需求 换句话说,cat API旨在以这种格式提供数据。所以您需要使用不同形式的AP

使用Elasticsearch 1.7,我希望看到JSON格式的
\u cat/index
结果。我明白,但是有没有一种方法可以使用Elasticsearch API将其转换为JSON?

看起来我可以使用
/*/\u别名获得我需要的内容,并使用响应的所有键,

Per:

JSON非常适合计算机。即使打印得很好,试图在数据中找到关系也是乏味的。人类的眼睛,尤其是在观看ssh终端时,需要紧凑且对齐的文本。cat API旨在满足这一需求

换句话说,cat API旨在以这种格式提供数据。所以您需要使用不同形式的API。问题是(至少这是我的问题)谷歌搜索“elasticsearch list Indexes”会首先显示cat API,所以这个问题很合理

要以JSON形式获取所有索引,只需运行以下命令:

GET /*/_stats
不过这是很多数据。您可能需要JSON,因为您希望对其进行某种处理。回到我是如何发现这个问题的,我实际上想得到一个按存储大小排序的索引列表,我不想使用
curl
sort
unix命令。该命令如下所示:

GET /*/_stats/store
不幸的是,search body中的排序对于
\u stats
命令不起作用(至少,我没能让它起作用)。但是添加
store
属性将使它成为一个索引,因此您只能返回关于每个索引的数据存储的信息


有关度量属性的更多信息可以在中找到。

通常,使用此REST API和其他REST API,将“Accept”标题设置为所需的内容类型。例如,使用elasticsearch 5.1.1,您需要指定“应用程序/json”作为接受的内容类型,elasticsearch将遵守此原则。

Append
format
param,例如:
\u cat/index?format=json

您还可以使用:
\u cat/index?format=json&pretty=true

是的,可以通过在末尾添加format=json来完成

localhost:9200/_cat/indices?format=json

为什么不使用常规api呢?@FrederickCheung-对不起,我不知道你的意思。你是不是建议我自己处理非JSON格式并转换它?我可能不得不这么做,但我只是想,如果可以做一些类似于
\u cat/index?json=true
的事情,那会更容易。我想这真的是一个肯定/否定的问题。我的意思是,_catAPI提供了json api的文本版本,例如/_stats,所以如果您想要json,为什么不直接使用/_stats(或者任何适合您使用的api)呢。谢谢你,这让我找到了正确的方向。就我的情况而言,我只需要索引名,所以我更喜欢
/*/\u别名
,而不是
/*/\u统计数据
,因为它的数据更少,得到的结果更快,但这很好。谢谢。@chevin99是的,每个用例都不同,只是想分享我的。在你发布问题几个小时后,我碰巧也在寻找同样的问题,所以我想我应该放弃一个答案。我还没有在Elasticsearch 1.7上测试过这一点,但它在v2.2.4上非常有效。竖起大拇指!不知道为什么这个答案不那么流行,tbh。@NeilBarnwell可能是因为标题比url参数更难设置?例如,我不知道如何在Kibana开发工具中设置它们。这可能会降低头对大多数用户的可用性。