FutureElasticsearchでセマンティックサーチを試すElasticsearchでknnクエリーを利用して、ベクトル検索を試すことができるの試してみる。Elasticsearchを起動する。-dという感じで、Dockerがあれば、http://localhost:9200でアクセスできるElasticsearchが起動できる。ML機能はライセンスが必要なので、以下でトライアルを有効にする。"http://localhost:9200/_license/start_trial?acknowledge=true"ElasticsearchのML機能を利用して、テキストデータを渡されたら、ベクトルに変換してくれるようにingestを設定して、ingestでテキストからベクトルを推論するモデルを登録していく。モデルを登録していくのが、モデルをインポートするためには、Pythonのelandを用いて、登録することになる。そのために、Pythonモジュールをインストールする。今回は、日本語を利用するので、以下のようなモジュールを入れておく。unidic-lite次はモデルのインポート。今回はtohoku/bert-base-japanese-v2を指定する。text_embeddingインポートできたら、モデルをデプロイする。"http://localhost:9200/_ml/trained_models/cl-tohoku__bert-base-japanese-v2/deployment/_start"ingestを登録して、テキストがベクトルに変換できるようにする。]}'contentフィールドにテキスト情報を入れる。ベクトルは、content_vectorオブジェクトに入る。ベクトル自体はcontent_vector.predicted_valueに格納される。ここまでくれば、下準備ができたので、次にデータを入れるインデックスを作る。}}'検証なので、contentにデータを入れるシンプルなインデックスです。このインデックスにデータを入れrます。テスト用のデータは、ChatGPTに10件生成してもらったので、それを入れます。"明日の天気は晴れの予報です。"彼女が好きな色はピンクです。"日本語を勉強しています。"新しいレストランがオープンしました。"今日は疲れたので早く寝ます。"おいしいコーヒーを飲みました。"新しいスマートフォンが発売されます。"友達と映画を見に行きました。"最近、本を読む習慣を始めました。"子供たちが公園で遊んでいます。"}'シンプルなデータなので、面白みにかけますが、検索は以下のリクエストを投げると、結果が帰ってきます。]}'「彼女が好きな色はピンクです。」が1件目で取得できると思いますが、2件目以降は類似度が高い順に返ってくるだけです。いう感じですが、詳しくはElasticsearchのドキュメントを参照するのが良いと思います。コメントをキャンセルメールアドレスが公開されることはありません。株式会社コードリブズにお問い合わせください。