RAG・検索基盤

Pineconeとは|128に分けて1つだけ探すと、比較は1.4%で済むが再現率が8.5%だった

分けると探す範囲はどう変わるのか更新はどう反映されるのか作り直しと差分のどちらが速いのか

128に分けて1つだけ探すと、比較は全体の1.4%で済みました。

ただし再現率は8.5%です。狭めた分だけ、取れるものが減ります。

この記事の要点

  • 128分割・1つで8.5%
  • 8分割・4つで76.5%
  • 1日1回の反映で44.92%が古い
  • 更新20%超で作り直しが速い

128に分けて1つだけ探すと再現率8.5%

記録は名前空間へ分けられます。探す範囲は狭まりますが、取りこぼしも増えます。

Pineconeでは、記録が名前空間へ分けられます。公式は索引の中で、記録は名前空間へと分けられ、投入も問い合わせもその他の読み書きも、つねに1つの名前空間を対象にすると述べています。

分けると探す範囲が狭まります。どこまで狭められるのか実際に探して数えました。

分けた数と探す数を変える

text
文書 20000件・64次元。似た文書が 40個の塊にまとまっている
問い 300件で上位 10件を取る。全件を見た場合を正解とする

シャード数  探すシャード  1問あたりの比較  全件比  再現率
8個          1個                     2529件    12.6%    30.5%
8個          2個                     5024件    25.1%    50.1%
8個          4個                    10023件    50.1%    76.5%
8個          8個                    20008件   100.0%   100.0%

32個         1個                      661件     3.3%    15.9%
32個         2個                     1285件     6.4%    27.2%
32個         4個                     2540件    12.7%    42.7%
32個         8個                     5043件    25.2%    64.4%

128個        1個                      284件     1.4%     8.5%
128個        2個                      441件     2.2%    15.1%
128個        4個                      755件     3.8%    23.8%
128個        8個                     1379件     6.9%    36.8%

128に分けて1つだけ探すと、比較は284件です。全件の1.4%で済みます。

そのとき再現率は8.5%でした。10件のうち1件も取れていません

同じ比較でも再現率が違う

8個に分けて1つを探すと比較12.6%で再現率30.5%、32個に分けて4つを探すと比較12.7%で42.7%です。

比較の量はほぼ同じなのに、再現率が12.2ポイント違います。細かく分けて広く探すほうが有利でした。

この形はベクトル分割の記事で扱っていて、分け方が意味に沿っているかで結果が変わります。

同じ比較の量でも、細かく分けて広く探すほうが取れる。

再現率(%)全件に対する比較の割合(%)→84.255.1128分割・1つ32分割・1つ128分割・8つ8分割・1つ32分割・4つ8分割・4つ文書2万件・64次元での実測。似た文書が40個の塊にまとまっている条件。
図1 ── 比較の割合と再現率
出典Pinecone 公式ドキュメント「Indexing overview」2026-08-18 確認
Within an index, records are partitioned into namespaces, and all upserts, queries, and other data read and write operations always target one namespace.
原文Pinecone 公式ドキュメント「Indexing overview」 この内容の有効期限2027-02-18

1日1回の反映では、44.92%の問いに古い内容が混ざる

記録には識別子がついています。だから差し替えられますが、反映の間隔だけ古い内容が残ります。

Pineconeの記録には、識別子とベクトルが要ります。公式は索引の中のすべての記録は、識別子とベクトルを持たなければならないと述べています。

識別子があるので差し替えられます。反映が遅れるとどうなるのか実際に測って数えました。

反映の間隔を変える

text
索引の総件数 500000件。1日に 5000件が更新される
更新された文書は、そうでない文書より 6倍引かれやすいものとした

反映の間隔  未反映の件数  上位10件に古い内容が混ざる問いの割合
5分                   17件                                 0.25%
60分                 208件                                 2.38%
360分               1250件                                13.88%
1440分              5000件                                44.92%

1日1回の反映だと、未反映は5,000件です。全体の1%ですが、44.92%の問いに古い内容が混ざります。

更新された文書ほど引かれやすいためです。件数の割合より、混ざる割合のほうがずっと大きくなります

間隔を詰める効き方

60分ごとなら2.38%、5分ごとなら0.25%です。間隔にほぼ比例して下がりました。

だから許せる割合を先に決めれば、間隔が計算で出ます

同じ形は増分索引の記事でも扱いました。

出典Pinecone 公式ドキュメント「Indexing overview」2026-08-18 確認
Every record in an index must contain an ID and a vector.
原文Pinecone 公式ドキュメント「Indexing overview」 この内容の有効期限2027-02-18

1日の更新が20%を超えると、全部作り直すほうが速い

用途ごとに1つ作る形です。その1つをどう保つかは、更新の量で決まります。

Pineconeでは、用途ごとに索引を作ります。公式は用途ごとに1つの索引というのが典型的な形であると述べています。

その1つを保つ方法は2つあります。実際に数えて比べました。

1日の更新件数を変える

text
索引の総件数 500000件。全部作り直すと 4.2分かかる
作り直しは毎秒 2000件、差分の投入は毎秒 400件として計算した

1日の更新件数  全体に対する割合  全部作り直す  差分だけ入れる  速いのは
500件                     0.1%          4.2分            0.0分          差分
5000件                    1.0%          4.2分            0.2分          差分
50000件                  10.0%          4.2分            2.1分          差分
100000件                 20.0%          4.2分            4.2分        作り直し
200000件                 40.0%          4.2分            8.3分        作り直し

入れ替わる点は 100000件。全体の 20.0% を超えると作り直したほうが速い。

1日1%の更新なら、差分だけ入れて0.2分です。作り直しの4.2分より21倍速くなります。

40%まで増えると差分は8.3分で、作り直しの倍かかります。20%が分かれ目でした。

1件あたりの速さが違うから

差分の投入は毎秒400件、作り直しは毎秒2,000件です。1件あたりでは作り直しのほうが5倍速いという前提を置いています。

まとめて入れるほうが1件あたりは軽くなるからです。この比が5倍なら、分かれ目は5分の1のところに来ます

余談 この計測での注意

3つの計測はいずれも手元で書いた模型で、実際のPineconeを叩いたものではありません。毎秒2000件・毎秒400件といった速さは置いた値です。更新された文書が6倍引かれやすいという前提も置いたもので、実際の偏りとは違います。分け方も、似た文書が塊にまとまっているという条件で作っています。ここで見せているのは、同じ比較の量でも分け方と探す数で再現率が変わるという点と、更新の割合で入れ方の有利不利が入れ替わるという点の2つです。

出典Pinecone 公式ドキュメント「Indexing overview」2026-08-18 確認
One index per use case is the typical pattern.
原文Pinecone 公式ドキュメント「Indexing overview」 この内容の有効期限2027-02-18

よくある質問

Pineconeの名前空間とは何ですか
索引の中で記録を区切る単位です。読み書きはつねに1つの名前空間を対象にすると説明されています。
分けると何が良いのですか
探す範囲が狭まります。128に分けて1つだけ探せば、比較は全体の1.4%で済みました。
分けすぎると何が起きますか
取りこぼします。同じ条件で再現率は8.5%まで落ちました。
索引はいくつ作るべきですか
用途ごとに1つが典型的な形だと説明されています。

まとめ

  • 記録は名前空間で分かれる
  • 分けると探す範囲が狭まる
  • 狭めすぎると取りこぼす
  • 更新の量で入れ方が変わる

今日から始められること

  1. 分けている単位を確かめる
  2. 1つの名前空間の件数を数える
  3. 反映の間隔を測る
  4. 1日の更新件数の割合を出す

実務で組んだPineconeのワークフローには、値段が付きます

同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。

出品の仕組みを見る