ElasticsearchのIndex/Typeを分割する必要があり、クエリを投げる前にIndex/Typeの一覧を取得する必要が出た。で、どうやって取得すればいいかというのだけ念の為残しておく。 残念ながらそのものズバリな関数はライブラリに無いっぽいので、Mapping情報を取得して、そこから抽出する方法になってしまう(connはElasticsearchとの接続用)。
...
# 対象INDEXのmapping情報を取得する(ワイルドカード使えるので、とりあえずここではワイルドカード)
mapping_data = self.conn.indices.get_mapping(index='*')
# INDEX,TYPEの一覧を取得する
type_list = []
index_list = []
for k, v in mapping_data.items():
index_list.append(k)
type_list.extend(list(v["mappings"].keys()))
count_mappings = len(list(v["mappings"].keys()))
...
まぁ、余計な情報も取得してしまうけど、Mappingならそんなにサイズないので、とりあえずはいいか。