ZoteroでFull-Library Searchを実測:PDF 10,000件を7分でインデックス、クエリは19.5 ms
あなたのZoteroライブラリには、数百——場合によっては数万——のPDFが眠っています。「確かライブラリに、このテーマを扱った論文があったはず」…で、次は?タグを掘り、年で並べ替え、キーワードを当てずっぽうで試す。10分経ってもまだ見つかりません。Zoteroの内蔵検索は文献項目を特定できますが、質問には答えてくれませんし、50本の論文にまたがる結論を統合してくれることはなおさらです。
PapersGPTの**Full-Library Search(全ライブラリ検索)**は、まさにこの問題を解決するために存在します:チェックボックスを1つオンにするだけで、ライブラリ全体が自然言語で質問できる知識ベースになり、開くべき論文のリストではなく、クリック可能な引用付きの直接の回答が返ってきます。
この記事に出てくる概念はひとつもありません。あるのは3つだけ:ベンチマークの数値、使い方、そして最も効果を発揮する場面です。
まずは数値から:10,000件のPDFでも19.5 ms
公式ベンチマークでは、2つのライブラリ規模でインデックス作成からクエリまでの完全なテストを実施しました(データはオープンソースリポジトリより、2.7k+ stars):
| 指標 | 1,000件のPDF | 10,000件のPDF |
|---|---|---|
| 元データ | 4.2 GB | 42 GB(~170k pages) |
| インデックス時間 | 51.5 s | 7m 01s |
| 平均クエリ時間 | 13.1 ms | 19.5 ms |
| メモリ(RSS) | 353 MB | 2.21 GB |
| インデックスサイズ | 100 MB | 901 MB |
覚えておく価値のある3つの数字:
- ライブラリが10倍になっても、1クエリあたり+6.4 ms。 13.1 ms → 19.5 ms —— ブラウザでのネットワーク往復1回分にも満たない差です。日常使いでは、100本の検索と10,000本の検索の体感は変わりません。
- 17万ページを7分で——支払うのは一度きり。 換算すると約 400 pages/s です。インデックス後はすべてのクエリがミリ秒台に収まり、新しく追加した論文は増分でインデックスされます。再構築は不要です。
- 42 GBの元PDFが901 MBのインデックスに圧縮(~2%) —— だからこそ、普通のラップトップでも余裕で動くのです。
その仕組み
Full-Library SearchはあなたのPDFを誰かのクラウドにアップロードしません——すべてはあなたのマシンの中で完結します:
- ネイティブC++エンジン。 インデックスと検索のコアはC++で書かれています——データベースエンジンや取引システムと同じ系統の言語です——検索のホットパスにPython/Nodeインタプリタのオーバーヘッドが乗りません。
- 「曖昧な」ベクトル意味検索ではなく、構造インデックス。 エンジンは文書の構造(タイトル・セクション・アブストラクト・参考文献がどこにあるか)を理解し、BM25全文ランキングと組み合わせます——現代の検索エンジンを支えるのと同じランキングモデルで、汎用的なベクトルマッチングより学術テキストの関連性判定にはるかに信頼が置けます。
- ネットワーク往復ゼロ。 アップロードキューも、サーバー側インデックスも、APIレイテンシもありません。表示される速度は、あなたのマシンの速度そのものです。
ユーザー視点で見る:効果を発揮する4つの場面
1. Related Workの執筆:50本の論文に自分で並んでもらう
「私のライブラリの中で、transformerを時系列予測に使っている論文はどれで、それぞれ何をベースラインとして比較していますか?」
Full-Library Searchはライブラリ全体を走査し、関連性でランキングし、統合します——主張の1つ1つに、原文へ直接ジャンプできる引用が付きます。検索するのではなく、検証するだけでよくなります。
2. 「タイトルを忘れた、あの論文」を探す
「何か月も前に、合成データでハルシネーションを緩和する話を読んだんです——確かドイツのグループでした。」
タイトルは要りません。内容を説明するだけでいいのです。検索はタイトル・著者・タグ・アブストラクトに加えて、Zotero内のあなた自身の注釈とメモまでカバーします——あのとき書き込んだ余白のメモこそ、今日打てる最良のクエリです。
3. 矛盾する証拠のチェック:論文発表前の保険
この応用形がGlobal Library Synthesisです:最大10,000+件のドキュメントを同時に分析し、研究トレンド、用語の変遷、そして何より矛盾する結論をマッピングします。「Xという効果について、ライブラリにある支持と反対の証拠はそれぞれ何ですか?」手作業なら1週間かかる問いが、ここでは数分です。
4. グループミーティングの10分前
「私のライブラリにあるこのバイオマーカー関連の論文を、サンプルサイズの大きい順にグループ分けして、各グループを要約して。」
回答はチャットウィンドウに届きます——コピーでき、Zoteroノートとして保存でき、引用はすべて追跡可能です。
Zotero内蔵検索との違い
| Zotero内蔵検索 | PapersGPT Full-Library Search | |
|---|---|---|
| 返すもの | 文献項目のリスト | 直接の回答 + クリック可能な引用 |
| 文書横断の統合 | ❌ | ✅ 論文間の比較、矛盾する証拠の分析 |
| クエリの形式 | キーワードマッチ | 自然言語(どんな言語でも) |
| カバー範囲 | メタデータ + 全文インデックス | 全文 + あなたの注釈とメモ |
| 典型的なレイテンシ | 数秒 | ~19.5 ms で結果表示 |
| 要約 | ❌ | ✅ 30+ LLMs が駆動 |
両者は補完関係にあります:Zoteroの検索は項目を見つけ、Full-Library Searchは答えを届けます。
プライバシー:機内モードでも動く
インデックスと検索は100%ローカルで、クラウドAPIに依存しません。実際には:
- 機内モード対応:検索もインデックスも完全にオフラインで動作します。
- ゼロバイトの漏えい:あなたのPDF、ノート、注釈、クエリがマシンの外に出ることはありません。
- 完全オフラインのワークフロー:Ollama経由でローカルモデルを組み合わせれば(内蔵のワンクリック・オープンソース・ダウンロードでも可)、質問から回答までのループ全体がネットワークなしで回ります。未発表データ、企業内部の研究、コンプライアンスが重要な仕事に最適です。
さらに、ライブラリ全体をClaude CodeやCursor、それに類するエージェントに接続したい場合は、Zotero MCP ServerがZoteroを開かずに全ライブラリを検索できます——同じローカルインデックスで、あなたの条件次第です。
Literature Radarとの組み合わせ:発見 → 整理 → 全ライブラリで検索可能に
Literature Radarは新しい論文をライブラリに追加し続け(Exploreで発見、Trackで購読)、Full-Library Searchはその1つ1つ——10年前の古典でも昨日のプレプリントでも——即座に質問できるものへ変えます。片方は流入を管理し、もう片方は検索を担います。2つでループが閉じます。
始め方
- PapersGPTプラグインをダウンロード(Zotero 7+)してインストールし、チャットパネルでSearch entire libraryにチェックを入れます。
- 自然言語で質問するだけ——回答には引用が付きます。
- Full-Library Searchはすべての有料プランに含まれます。新規ユーザーはまず無料トライアルでお試しください。
よくある質問
PDFはサーバーにアップロードされますか?
いいえ。インデックスと検索は完全にローカルで実行されます——上記のベンチマークも、外部APIに一切依存しない状態で実施しました。あなたのPDF、ノート、クエリがマシンの外に出ることはありません。
対応するライブラリの規模は?
100本から10,000+本まで対応しています。公式ベンチマークは1,000件のPDF(インデックス51.5 s)と10,000件のPDF(インデックス7m 01s、クエリ19.5 ms)をカバーしています。インデックスのコストはほぼ線形に増加し、クエリのレイテンシは一定です。
Zoteroの内蔵全文検索と何が違いますか?
Zoteroの全文検索は、マッチした項目のリストを返すので、自分で1つ1つ開いて確認する必要があります。Full-Library Searchは文書横断で統合された回答を、クリック可能な引用付きで返し、あなたの注釈とメモもカバーします。
自分の言語で質問できますか?
はい。質問の言語は選択したLLMに従います——中国語、英語、その他の言語もすべて動作します。インデックス自体は、どの言語の全文も処理します。
完全オフラインでも動作しますか?
インデックスと検索は動きます(純粋にローカルです)。回答の生成は、クラウドモデル(GPT、Claude、DeepSeekなど)を選ぶとネットワークが必要です。Ollamaでローカルモデルに切り替えれば、ループ全体がオフラインで回ります。