こんにちは。 今年の8月にElasticsearch 1.5.0がリリースされました(リリースノート)。 このアップデートでは、sparse_vectorクエリが追加され、疎ベクトルを使ってsparse_vectorフィールドに対してクエリできるようになりました。 元々はtext_expansionとweighted_tokensというクエリがあったようなのですが、sparse_vectorはこれらを代替するものであり、これらは同時に非推奨になったようです。 今回はこの機能を使って、SPLADE[1]というモダンな検索モデルをElasticsearch上で使ってみます。 実験に使ったコードも公開していますので、適宜ご覧ください:https://github.com/argonism/splade-es SPLADEとは? SPLADEはBERTベースの検索モデルです。 ここでは簡単に説明し