Elasticsearch 中列出集群的所有索引的语法是什么?
参考回答
在 Elasticsearch 中,可以使用 Cat Indices API 列出集群中的所有索引。基本语法如下:
GET /_cat/indices?v
/_cat/indices是用于查看所有索引的 API。- 参数
v(可选)表示输出结果中显示列名,方便阅读。
示例返回结果:
执行上述命令后,可能返回如下结果:
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open products abc1234567890 1 1 1000 10 1.2mb 600kb
yellow open orders def9876543210 1 0 5000 50 5mb 5mb
详细讲解与拓展
1. 参数详解
/_cat/indices 默认返回结果是紧凑的。通过可选参数可以定制返回结果:
– v:显示列名。
– health:索引的健康状态,可能的值为:
– green:所有分片都已分配。
– yellow:主分片已分配,但副本分片未分配。
– red:有主分片未分配。
– status:索引的状态(open 或 close)。
– index:索引名称。
– docs.count:文档总数。
– docs.deleted:已删除的文档数。
– store.size:索引占用的存储大小。
– pri.store.size:主分片占用的存储大小。
2. 获取更详细的索引信息
使用 format=json 参数返回 JSON 格式,便于程序处理:
GET /_cat/indices?format=json
返回示例:
[
{
"health": "green",
"status": "open",
"index": "products",
"uuid": "abc1234567890",
"pri": "1",
"rep": "1",
"docs.count": "1000",
"docs.deleted": "10",
"store.size": "1.2mb",
"pri.store.size": "600kb"
},
{
"health": "yellow",
"status": "open",
"index": "orders",
"uuid": "def9876543210",
"pri": "1",
"rep": "0",
"docs.count": "5000",
"docs.deleted": "50",
"store.size": "5mb",
"pri.store.size": "5mb"
}
]
3. 筛选特定索引
如果只想查看特定索引的情况,可以指定索引名称或使用通配符。例如:
GET /_cat/indices/products?v
或:
GET /_cat/indices/prod*?v
4. 列出所有索引的简单概览
如果只想查看索引名称,可以使用以下命令:
GET /_cat/indices?h=index
这会返回所有索引的名称列表,例如:
products
orders
users
5. 使用 Head 或 Kibana 可视化工具
在 Kibana 中,执行上述命令可以直接看到结果。如果使用 Elastic Head 插件,也可以方便地查看索引的列表和状态。
总结
- 列出所有索引的基本语法是
GET /_cat/indices?v。 - 可以通过添加参数筛选特定信息(如 JSON 格式输出或仅列出索引名称)。
/_cat/indices提供了索引健康状态、文档数、存储大小等详细信息,帮助用户监控和管理索引。