如何获取python-elasticsearch中所有索引的列表

Dav*_*542 43 python elasticsearch

我如何获得Python中索引名称的列表?这是我到目前为止:

>>> es=e.es
>>> es
<Elasticsearch([{'host': '14555f777d8097.us-east-1.aws.found.io', 'port': 9200}])>
>>> es.indices
<elasticsearch.client.indices.IndicesClient object at 0x10de86790>
# how to get a list of all indexes in this cluster?
Run Code Online (Sandbox Code Playgroud)

ere*_*wok 35

搜索有关aliases使用python-elasticsearch库检索的信息时会出现此问题.接受的答案表示使用get_aliases但该方法已被删除(截至2017年).要获得aliases,您可以使用以下内容:

 es.indices.get_alias("*")
Run Code Online (Sandbox Code Playgroud)

  • 现在,这会引发 DeprecationWarning(请参阅 https://github.com/elastic/elasticsearch-py/issues/1698)。我相信现在正确的使用方法是: ` es.indices.get_alias(index="*")`。 (2认同)

小智 31

如何获取此群集中所有索引的列表?

使用通配符.与elasticsearch-py一起使用.

for index in es.indices.get('*'):
  print index
Run Code Online (Sandbox Code Playgroud)


Dav*_*542 25

以下是使用该get_alias()方法执行此操作的一种方法:

>>> indices=es.indices.get_alias().keys()
>>> sorted(indices)
[u'avails', u'hey', u'kibana-int']
Run Code Online (Sandbox Code Playgroud)

  • 此答案对es5.x起无效 (2认同)
  • 实际上,它实际上是`get_alias`而不是`get_aliases()`,例如:es_client.indices.get_alias()。keys()`api从那时起可能已更改 (2认同)