Elasticsearch 5.3に対してPythonからアクセスする際、Indexはワイルドカード指定できるのだけど、Typeについてはワイルドカードでの指定ができない。 一応、カンマ区切りで複数の指定は可能なのだけど、あまりにTypeの数が多くなるとhttpのエラーでクエリを実行できなくなってしまう。で、なんかいい方法ないのかなと調べていたのだけど、どうやらクエリ側にprefixとして_typeを定義してやることで、ワイルドカードでの指定と同じようなことができるようだ。
query = {
'bool': {
'must':[
'prefix': {'_type': {'value': <TypeのPrefix> } }
]
},
...
}
}
この場合、クエリ実行時に_typeは指定しないようにする必要があるけど、ひとまずこれでワイルドカード指定と同じような挙動をしてくれた。