- blogs:
- cles::blog

Python で Elasticsearch をいじる


全文検索サーバとしてはいつのまにか Apache Solr よりも Elasticsearch の方がシェアが高くなってしまっていて*1、最近新規導入するのは Elasticsearch ばかりという感じになってきました。Elasticsearch は単体ではほとんど機能がありませんが、Logstash, Kibana, Beats との組み合わせが強力なんですよね。どちらもベースは Lucene なので、クエリとかは共通なのでそこは助かるんですけどね。
† Python から検索する
今回は Python でバッチを開発するので、Python 用の Elasticsearch Client を使ってみます。
Python Elasticsearch Client — Elasticsearch 8.0.0 documentation
Official low-level client for Elasticsearch. Its goal is to provide common ground for all Elasticsearch-related code in Python; because of this it tries to be opinion-free and very extendable.
クライアントライブラリは Elasticsearch のバージョン毎に用意されているので、pip install elasticsearchX (Xはバージョン)のような感じでインストールしておきます。ページングの処理が独特なので、自前で頑張るよりも以下のように helpers.scan() を使うと、for 文で処理が進むと必要なだけのデータが順次取得されるようになります。
query は元々 Solr 使いなので、Lucene 形式の方が楽ですかね。
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/11759
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110622)
3 . 年次の人間ドックへ(110253)
4 . 2023 年分の確定申告完了!(1つめ)(109799)
5 . 三菱鉛筆がラミーを買収(109697)