本文へ移動

ナレッジストレージを運用する

ベクトルDBは、文書をAIが検索できる形式(ベクトル)に変換して保存する場所です。ナレッジインデックス作成で作られた検索データがここに保存され、AI文書検索とRAG回答がこのデータを使用します。

ベクトルDBに保存されるデータは、元の文書からいつでも作り直せる派生データです。ベクトルDBを変更または初期化しても、ワークスペースの元のファイルは変わりません。


始める前に

  • 必要な権限:Workspace管理者
  • ナレッジサービス > ナレッジストレージで、現在のドライバーと接続状態を確認します。
  • ストレージの切り替えや初期化は、検索結果が再び準備されるまで影響を与える場合があるため、作業時間を決めておきます。

ベクトルストレージの選択

ナレッジストレージのドライバーで選択します。

ドライバー保存場所コレクションの準備推奨環境
Automatic (SQLite)SpaceBuilderサーバー内部のファイル不要デフォルト値。埋め込みモデルを選択すると、内蔵のSQLiteストレージを使用します。
Local (SQLite)指定したパスのlocal_vectors.dbファイル不要ベクトルが約5万個以下の小規模な環境。保存パスを自分で決めたい場合に使用します。
Qdrant外部のQdrantサーバー自動作成ベクトルが多い場合や、検索データを別のサーバーに分離する場合
Milvus外部のMilvusサーバー事前に作成が必要すでにMilvusを運用している場合や、大規模なクラスターが必要な場合

ベクトル数は文書数ではなく、文書の断片(チャンク)の数です。文書は形式に応じてセクション、ページ、行の単位で分割した後、韓国語基準で約700〜1,000文字のサイズにさらに分割して保存します。長い文書1つが数十個のベクトルになることがあります。

外部ベクトルDBのインストールと接続の方法は、それぞれのドキュメントを参照してください。

  • Qdrantを接続する — Dockerコンテナ1つでインストールできる軽量な構成です。別のサーバーを初めて構成する場合は、Qdrantを推奨します。
  • Milvusを接続する — メモリ8GB以上の別のサーバーを推奨します。コレクションを自分で作成する必要があります。

Local (SQLite)の運用

Localドライバーは、外部サービスを使わずに、1つのSQLiteファイル(local_vectors.db)でベクトル検索を運用します。

項目内容
保存ファイルデータパスの下のlocal_vectors.db
データパスデフォルト値はvectordb_localです。相対パスは、SpaceBuilderの設定ファイルがあるフォルダを基準にします。
検索方式保存されているベクトルをすべて比較する方式です。1024次元の場合、1万個で約10msかかり、データが増えるほど検索時間も長くなります。
推奨規模ベクトル約5万個以下。これを超える場合は、QdrantまたはMilvusへの切り替えを推奨します。

ベクトルDBの運用状況には、local_vectors.db 使用量もあわせて表示されます。

項目意味
DB ファイル / WAL / SHMSQLiteの本体ファイルと書き込みログファイルのサイズ
DB 内部の再利用可能領域データの削除によって空いたものの、まだファイルサイズには反映されていない領域です。新しいデータを保存するときは、この領域を先に再利用します。

ストレージや埋め込みモデルを変更するとき

次の項目のうち1つでも変更して保存すると、SpaceBuilderが変更を検知し、元の資料全体の再インデックスを自動的に開始します。

  • ドライバー、エンドポイント、コレクション、データパス
  • 埋め込みモデル、ベクトル次元数

切り替えは、次の順序で進みます。

  1. 新しい設定を保存します。
  2. インデックススケジューラーが変更を検知し、元の資料全体の再インデックスをリクエストします。
  3. すべての文書を新しい設定で埋め込み直し、新しいストレージに保存します。
  4. すべての文書が新しいストレージに保存され、検索の検証まで終わると、以前のベクトルを元の保存場所から削除します。

切り替え中の検索

  • 変更を検知するまでは、ベクトル検索を一時的に停止し、キーワード検索のみを使用します。
  • 再インデックス中は、新しいストレージを検索します。まだ新しいストレージに移されていない文書は、ベクトル検索の結果に表示されない場合があります。
  • 再インデックスが終わると、新しい設定で作成したベクトルのみを検索します。

文書が多いと再インデックスに時間がかかる場合があるため、ユーザーが少ない時間帯に切り替えてください。

切り替え時の注意点

  • 以前の外部ストレージは、整理が終わるまで稼働させておいてください。 QdrantやMilvusから別のストレージに移行した場合は、以前のベクトルの削除が終わるまで、以前のサーバーに接続できる必要があります。接続できない場合、整理作業は以前の保存先に接続できませんの状態で再試行され続けます。
  • ベクトル次元数を変更する場合は、コレクションも新しく指定してください。 作成済みのQdrant・Milvusコレクションは、次元を変更できません。次元が異なるコレクションには保存できません。
  • 以前の設定に戻しても、再インデックスします。 A → B → Aのように戻した場合、最初のAのデータは再利用されず、新たにインデックスを作成します。

運用状態の確認

ベクトルDBの運用状況

ナレッジストレージ画面の上部で確認します。

項目意味
接続状態ベクトルストレージに接続できるかどうか
ベクトルストア使用中のドライバーと種類(組み込み型・サービス型)
保存済みベクトル数このインスタンス(現在のSpaceBuilder)が保存したベクトルの数。同じストレージを使用する別のインスタンスのデータは含みません。
コレクション数Localは1(初回のインデックス作成前は0)、Qdrant・Milvusはそのサーバーにあるすべてのコレクションの数
コレクション設定ストレージの次元と距離の計算方式が、設定と一致しているかどうか

コレクション設定には、次のいずれかが表示されます。

表示意味
正常(現在の設定と互換性あり)コレクションを使用できます。
未作成・初回インデックス作成時に自動で作成されますQdrantのコレクションがまだありません。エラーではなく、初回のインデックス作成時に作成されます。
コレクションがありません・先に Milvus でコレクションを作成してくださいMilvusのコレクションは自動的には作成されません。Milvusを接続するを参照して作成してください。
コレクション設定の確認が必要次元または距離の計算方式が一致していません。あわせて表示されるエラー内容を確認してください。

ナレッジインデックス作成画面

ナレッジインデックス作成のインデックス要約で、進行状況を確認します。

項目意味
更新待ち新しく作成または変更したファイルのうち、インデックス作成を待っている数
埋め込み待ちテキストの抽出が終わり、ベクトルへの変換を待っている数
埋め込み数SpaceBuilderが記録している現在の埋め込み数。切り替えや再インデックスの間は、ベクトルDBの保存済みベクトル数と異なる場合があります。
ベクトル削除待ちファイルの削除やストレージの切り替えの後、元の保存場所から削除されるのを待っているベクトルの数

以前のベクトルの削除に失敗すると、整理の再試行一覧に保存先と理由が表示されます。再試行の間隔は徐々に長くなり、最大5分です。

理由意味と対処
以前の保存先に接続できません以前のベクトルDBサーバーが停止しているか、接続できません。以前のサーバーを再び起動すると、自動的に整理を再開します。
リモート削除に失敗ベクトルDBが削除リクエストを拒否しました。ベクトルDBサーバーの状態とログを確認してください。
以前の保存結果を確認中結果が確認されていない保存リクエストが残っているため、削除の完了を待っています。ほとんどの場合、自動的に解消されます。
削除完了の記録に失敗削除はされましたが、SpaceBuilderに完了を記録できませんでした。次の周期でもう一度試行します。

ベクトルの同期と再構築

ナレッジストレージの管理者専用の領域で実行します。どちらの操作でも元のファイルは削除されず、Team以上のライセンスが必要です。

操作動作使用する場面
既存の埋め込みを同期現在の文書チャンクと互換性のある既存の埋め込みを、選択したベクトルDBにコピーし、復元できないベクトルだけを作り直します。ベクトルDBを変更した場合や、ストレージのベクトルが欠けている場合
ベクトル世代を再構築以前のベクトルを維持したまま新しいベクトル世代を作成し、検証が終わると以前のベクトルを整理します。保存されているベクトルを最初から構成し直す必要がある場合
  • どちらの操作もリクエストを受け付けるものであり、進行状況は収集・インデックス作成で確認します。
  • 同じQdrant・Milvusコレクションを使用する別のインスタンスのデータには影響しません。

複数のインスタンスが1つのベクトルDBを共有するとき

インスタンスとは、個別にインストールして運用する1つのSpaceBuilderのことです。インスタンスごとに固有のインスタンス分離キーがあり、保存するベクトルにはこのキーがあわせて記録されます。そのため、同じコレクションを共有しても、検索、統計、ベクトルの整理は、それぞれのインスタンスのデータの中だけで行われます。

ただし、バックアップ、容量の管理、削除をインスタンスごとに行うには、インスタンスごとに別のコレクションを使用することを推奨します。デフォルトのコレクション名(knowledge_vectors)を使用すると、設定画面に警告とともに、このインスタンスの推奨名(setfn_knowledge_...)が表示されます。

バックアップと復元

ナレッジデータのバックアップは、SpaceBuilderサーバーを停止してからコマンドで実行します。サーバーが実行中の場合、バックアップと復元は拒否されます。復元できるのは、同じインスタンス、同じホームフォルダで作成したバックアップだけです。

# バックアップ(対象フォルダは、まだ存在しない新しいパスである必要があります)
~/setfn-spacebuilder admin knowledge-backup <バックアップフォルダ>

# 復元
~/setfn-spacebuilder admin knowledge-restore <バックアップフォルダ>
対象バックアップに含まれるか
ナレッジインデックスの記録(チーム・個人スペース)含まれる
Localのlocal_vectors.dbSpaceBuilderのホームまたは設定フォルダの中にある場合のみ含まれる
Qdrant・Milvusのベクトル含まれない(元の資料から作り直す派生データ)

復元後はサーバーを起動し、ナレッジストレージで既存の埋め込みを同期を実行して、ベクトルDBにデータを入れ直してください。バックアップ以降に外部ベクトルDBへ保存されたベクトルは、復元の過程で整理対象になり、サーバーの起動後に元の保存場所から自動的に削除されます。

トラブルシューティング

症状確認する内容
接続状態が未接続エンドポイントのアドレスとポート、ファイアウォール、ベクトルDBサーバーが実行中かどうかを確認してください。
コレクション設定の確認が必要とcollection dimension is ..., expected ...コレクションの次元と、設定したベクトル次元数が異なります。新しいコレクション名を指定してください。
コレクション設定の確認が必要とunnamed dense vectorに関するエラーQdrantのコレクションをHybridまたはnamed vectorで作成しています。Qdrantを接続するを参照してください。
保存済みベクトル数が増えないナレッジインデックス作成がオンになっているか、許可時間帯の外ではないか、開始前の設定確認がすべて完了しているかを確認してください。
開始前の設定確認のAIベクトルDBに警告が表示されるベクトルDBの接続エラー、コレクション設定の不一致、またはMilvusのコレクションなしです。接続エラーと設定の不一致は、カードにマウスポインターを合わせると詳細なエラーが表示されます。Milvusのコレクションなしの場合は、別途表示されるエラー内容がないため、Milvusを接続するを参照してコレクションを作成してください。カードを押すと、ベクトルDB設定に移動します。
ベクトルDBに認証が設定されていて未接続になるナレッジストレージでAPIキー(Qdrant・Milvus)、またはユーザー名とパスワード(Milvus)を入力して保存してください。
整理の再試行がたまり続ける以前のストレージに接続できるかどうかを確認してください。運用状態の確認の理由別の対処を参照してください。

関連ドキュメント