如何在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?
9条答案
按热度按时间ca1c2owp1#
如何获得这个簇中所有索引的列表?
使用通配符。与elasticsearch-py一起使用。
ktca8awb2#
下面是使用
get_alias()
方法执行此操作的一种方法:hc2pp10m3#
如果你愿意使用pyelasticsearch module,他们支持
GET _mapping
命令,这个命令可以生成集群的模式。这将允许你查看索引,并深入到每个索引中查看doc_types,以及它们的字段等。为了只获得索引列表,
这与this question有关
2eafrhcq4#
您可以使用Cat API:
es.cat.indices(h='index', s='index').split()
kuuvgm7e5#
我使用curl调用stats API并获取有关索引的信息,然后解析返回的JSON对象以查找索引名称。
在Python中,你可以使用requests库来调用curl,我不知道用Elasticsearch或Elasticsearch-DSL Python库来做这件事的方法。
t2a7ltrp6#
你可以通过get _mapping来获取所有索引的列表。
ndh0cuux7#
_cat
API似乎是正确的方法,因为_aliases
的方法很快就会被elasticsearch删除,因为它公开了系统索引。它帮了我的忙。
bejyjqdl8#
如果您想要“别名”而不是“索引名”,这里有一个完美的解决方案:
在
alias_names
中,我们得到一个特定索引的别名列表。kxkpmulp9#
这个问题是在搜索使用
python-elasticsearch
库检索aliases
的信息时出现的。可接受的答案是使用get_aliases
,但该方法已被删除(截至2017年)。要获得aliases
,您可以使用以下命令:最新的用法应该是使用关键字arg: