Elasticsearch 5.3に対してPythonからアクセスする際、Indexはワイルドカード指定できるのだけど、Typeについてはワイルドカードでの指定ができない。 一応、カンマ区切りで複数の指定は可能なのだけど、あまりにTypeの数が多くなるとhttpのエラーでクエリを実行できなくなってしまう。で、なんかいい方法ないのかなと調べていたのだけど、どうやらクエリ側にprefixとして_typeを定義してやることで、ワイルドカードでの指定と同じようなことができるようだ。


ElasticsearchのIndex/Typeを分割する必要があり、クエリを投げる前にIndex/Typeの一覧を取得する必要が出た。で、どうやって取得すればいいかというのだけ念の為残しておく。 残念ながらそのものズバリな関数はライブラリに無いっぽいので、Mapping情報を取得して、そこから抽出する方法になってしまう(connはElasticsearchとの接続用)。