Milvus
Milvus はオープンソースのベクトルデータベースです。LangChain4j はこれを
EmbeddingStore として使い、埋め込みを永続化して類似度検索を実行できます。
2 つの Milvus モジュール
現在 2 つ の独立した Milvus 連携モジュールがあり、併用可能です。
| モジュール | Milvus Java SDK | 機能 | ステ ータス |
|---|---|---|---|
langchain4j-milvus | v1(MilvusServiceClient) | 密ベクトル検索 | レガシー。非推奨の v1 SDK 上に構築。 |
langchain4j-milvus-v2 | v2(MilvusClientV2) | 密 + 疎 + ハイブリッド 検索(組み込み BM25 含む) | 現行。新規プロジェクト推奨。 |
移行期の命名——LangChain4j 2.0 で変更予定
-v2 サフィックスは Milvus SDK のバージョン を指し、本モジュール自体のバージョンではありません。一時的な命名です。
LangChain4j 2.0 では、レガシーの langchain4j-milvus モジュールは 削除 され、langchain4j-milvus-v2
は langchain4j-milvus にリネーム されます(Maven artifact、...milvus.v2 パッケージ、MilvusV2*
クラス名からいずれも v2 が外れます)。
今 langchain4j-milvus-v2 を採用する場合、2.0 へのアップグレード時に Maven
座標、import、クラス名の更新が必要になります。移行ガイドは 2.0 リリース時に提供されます。
新規プロジェクトでは langchain4j-milvus-v2 を使用してください。
langchain4j-milvus-v2(推奨)
現行の Milvus Java SDK v2 上に構築されています。密ベクトル検索、疎ベクトル検索、およびハイブリッド (密 + 疎)検索をサポートします——Milvus 組み込みの BM25 全文疎ベクトルも含みます。
Maven依存関係
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-milvus-v2</artifactId>
<version>1.19.0-beta29</version>
</dependency>
API
MilvusV2EmbeddingStore
基本的な使い方——密ベクトル検索
標準の EmbeddingStore の使い方です。検索モードのデフォルトは VECTOR(密のみ)です。
MilvusV2EmbeddingStore store = MilvusV2EmbeddingStore.builder()
.uri("http://localhost:19530") // or .host("localhost").port(19530)
.collectionName("my_collection")
.dimension(384) // required when a new collection is created
.build();
store.add(embedding, textSegment);
EmbeddingSearchResult<TextSegment> result = store.search(
EmbeddingSearchRequest.builder()
.queryEmbedding(queryEmbedding)
.maxResults(5)
.build());