Elasticsearchとpandasという組み合わせでいうと、Elasticsearchの公式サイトでも紹介があるeland | Elasticなのかなと思います。
しかしながら、ElandでElasticsearchの検索クエリをかませて、それをDataFrameに入れる方法が(おそらくそのような機能を具備しているように見えたものの掘り下げ不足なのか)パッと見わかりませんでした。
てことで、Pythonクライアントで自分が欲しいのはこの程度だからいいやということで代用したサンプルコードのメモです。
確認した、 Elasticsearchのバージョンは6.8です。 pandasは、1.01 です。
gist5b5a14c739067d7c43c03d0e24695126
参考
1) この例は、次の記事で作成したインデックスを対象にしています。
2) 発行しているクエリは、検索クエリ(term)によるシンプルなクエリと、Aggregationsのsignificant_termsクエリです。
3) この記事を書いた隠れたモチベーションがあります。
私が見逃していただけかもしれませんが、長らく公式サイトでは、Elasticsearchの検索結果のJSONフォーマットに関してはっきりした記述が見られませんでした。
... というと言い過ぎなのかもしれませんが、とりあえず、7系の公式ドキュメントでは、次のセクションで、hitsの構造と、各配下のプロパティについて明記されているようなので、それを見つけてちょっと嬉しくなったというところでした。
検索結果のJSONフォーマットについては、実際に現物をさわっていれば、経験的に分かります。
また、断片的に公式ドキュメントの中で何度も事例が出てくるので、これといった不自由はありません。
しかし、公式に明記してあると、誰かに紹介しやすかったりしていろいろありがたいですね。