ArcadeDB
ArcadeDB は、グラフ、ドキュメント、キーバリュー、時系列、ベクトルデータをサポートするマルチモデル NoSQL データベースです。組み込みの LSM_VECTOR インデックス(JVector/HNSW 駆動)を提供し、高性能な近似最近傍(ANN)ベクトル検索を実現します。
langchain4j 統合は 2 つの動作モードをサポートします:
- リモートモード — HTTP 経由で ArcadeDB サーバーに接続します。本番デプロイメントや共有インフラに適しています。
- 組み込みモード — 同一 JVM 内で ArcadeDB をプロセ ス内実行します。サーバーや Docker コンテナは不要で、データベースはローカルファイルシステムに保存されます。テスト、デスクトップアプリケーション、または単一プロセスのワークロードに理想的です。
Maven依存関係
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-community-arcadedb</artifactId>
<version>${latest version here}</version>
</dependency>
注意:これはコミュニティ統合モジュールです。プロジェクト構成に langchain4j-community リポジトリを追加する必要がある場合があります。
API
ArcadeDBEmbeddingStore
機能
- 2 つの動作モード:リモート(ArcadeDB サーバーへの HTTP クライアント)または組み込み(ArcadeDB がプロセス内で動作、サーバー不要)
- マルチモデルデータベース:embedding を ArcadeDB のグラフモデル内の頂点として保存し、ドキュメント、キーバリュー、時系列データと共存可能
- HNSW ベクトルインデックス:ArcadeDB の LSM_VECTOR インデックス(JVector ベース)を使用した高速近似最近傍検索
- メタデータフィルタリング:比較演算子と論理演算子を使用してメタデータで検索結果をフィルタリング
- 永続ストレージ:リモートと組み込みの両モードで、再起動後もデータが保持される
- 自動スキーマ作成:初回使用時に頂点タイプ、プロパティ、ベクトルインデックスを自動作成
- 複数の類似度関数:COSINE(デフォルト)、EUCLIDEAN、SQUARED_EUCLIDEAN 距離メトリクスをサポート(リモートモード)
- バッチ操作:1 回の呼び出しで複数の embedding を追加
- 柔軟な削除:ID 別、フィルター別、またはすべてクリアして embedding を削除
基本的な使い方
リモートモード
リモートモードは稼働中の ArcadeDB サーバーに接続します。ローカルで起動するには Docker で ArcadeDB を実行する を参照してください。
既存のデータベースに接続する
EmbeddingStore<TextSegment> embeddingStore = ArcadeDBEmbeddingStore.builder()
.host("localhost")
.port(2480)
.databaseName("my_database")
.username("root")
.password("playwithdata")
.dimension(384) // Must match your embedding model's dimension
.build();