オルタナティブ・ブログ > 生涯ITエンジニアでいこう。 >

どんどん出てくるIT業界の新トレンドを乗りこなし末長くエンジニアをやっていきましょう。

その専用ベクトルDB、本当に要りますか?『検索ピラミッド』――grepから専用DBまで、登るべき階段の見極め方

»

1. 導入:「RAGやるなら、まずベクトルDBですよね?」

RAG(検索拡張生成)の相談を受けると、かなりの確率でこう言われます。

「で、ベクトルDBはどれを入れればいいですか?」

......気持ちはよくわかります。

RAGの解説記事を開けば、ほぼ必ず「埋め込み」と「ベクトルDB」がセットで出てきますから。

ところが最近、AI開発の現場でちょっと面白い動きが起きています。

最新鋭のベクトルDBを外して、1973年生まれのテキスト検索ツール「grep」に置き換える――という動きです。

grep派のエンジニアの主張はシンプルです。

  • 専用インデックスを作って管理しなくていい
  • インデックスが時間とともに古くなる(Stale)問題もない
  • それなのに、むしろ検索結果が良くなることすらある

ここで立ち止まって考えたいのは、この問いです。

「私たちは本当に、高価で複雑な専用ベクトルDBを必要としているのか?」

ビデオでは、検索のアプローチを4段階のピラミッドとして整理しています。

原則はたった一つ。

「ワークロードが本当に必要とするときだけ、ピラミッドを登る」

理由もなく頂上まで駆け上がると、複雑さとコストという形で転げ落ちることになります。

今回はこのピラミッドに沿って、ベクトルDBをめぐる4つの「意外な真実」を見ていきます。

→ 最初に問うべきは「どのベクトルDBか」ではなく、「そもそも要るのか」です。


2. 真実その1:grep × AIエージェントは、ベクトル検索に匹敵する

grepは、正規表現に一致する行を探すだけのコマンドです。

文字列をそのまま照合するだけ。

文脈を理解すべきAIの検索エンジンとしては、いかにも力不足に見えます。

ところが、これを**自律型AIエージェント(Agentic Search)**と組み合わせると話が変わります。

ポイントは、エージェントには**「一発で正解を引き当てる必要がない」**ということです。

エージェントは、

  1. キーワードで検索する
  2. 返ってきた結果を読む
  3. 足りなければクエリを変えて、もう一度検索する

というループを自分で回せます。

人間がGoogle検索で「うーん、違うな」とキーワードを変えながら探していくのと同じですね。

何周かループを回せば、高価な埋め込み処理をしなくても、ベクトル検索と同等の結果にたどり着ける。

Claude CodeのようなコーディングエージェントがgrepやファイルSearchでコードベースを探索しているのも、まさにこの考え方です。

→ 検索の「一発精度」は、エージェントの「試行回数」で補える時代になりました。


3. 真実その2:「巨大コンテキストウィンドウ」には罠がある

いまのフロンティアモデルは、数年前と比べて約1,000倍ものテキストを一度に読み込めるようになりました。

となると、こういう発想が出てきます。

「検索なんてせずに、関係しそうな資料を全部プロンプトに貼ればいいのでは?」

実際、資料が十分に小さいなら、それが一番シンプルで正解です。

検索システムを作らなくていいのですから。

ただし、データが大きくなるにつれて、この「全部入れ」は危険な罠に変わります。

トークンが増えればコストが上がる。

これは当然です。

でも、本当に怖いのはそこではありません。

「コンテキストの膨張(Context Bloat)」による回答精度の低下です。

ビデオでも、必要な部分だけを検索して渡す場合に比べて、全投入はモデルの性能を下げかねない、と指摘しています。

会議資料を100ページ渡されて「で、結論は?」と聞かれる状況を想像してみてください。

人間でも重要な一文を見落とします。

AIも同じです。

→ 「入る」ことと「うまく使える」ことは別物。資料が増えたら、ピラミッドを一段登る合図です。


4. 真実その3:キーワード検索が越えられない壁「セマンティック・ギャップ」

とはいえ、grep+エージェントも万能ではありません。

どうしても越えられない壁があります。

それが**「セマンティック・ギャップ(意味の隔たり)」**です。

ビデオでは、社内ITヘルプデスクの例が出てきます。

  • ユーザーの質問:「パスワードをリセットするには?(how do I reset my password?)」
  • 解決済みチケットのタイトル:「更新後の認証情報ループ(credentials loop after update)」

......共通する単語が、一つもありません。

文字の一致を前提にするgrepでは、このチケットは原理的に見つけられないのです。

エージェントが何周ループを回しても、「credentials」「loop」という単語を思いつかなければ届きません。

一方、埋め込み空間では、この2つの文はすぐ近くに配置されます。

言葉はまったく違っても、「同じ問題について話している」ことを数学的に捉えられる。

これこそが、ベクトル検索を使う最大の理由です。

現場あるあるで言えば、ユーザーの言葉と、ドキュメントを書いた人の言葉がズレている領域。

ヘルプデスク、FAQ、社内ナレッジ――まさにここがベクトル検索の出番です。

→ 「言葉がズレる」なら意味検索。ズレないならキーワード検索で十分です。


5. 真実その4:ほとんどの企業に「専用」ベクトルDBは要らない

では、意味検索が必要だとわかったら、すぐ専用ベクトルDBを入れるべきか。

答えは**「まだ早い」**です。

いまや、主要な汎用データベースのほとんどがベクトルインデックスとベクトル検索を標準でサポートしています。

考えてみれば当然で、埋め込みとは行の横に付いた数値の列にすぎません。

カラムにインデックスを貼って高速に検索する。

それは、昔からデータベースが一番得意なことです。

さらに忘れてはいけないのが、埋め込みには3つのコストがかかることです。

コスト いつ発生するか 中身
取り込みコスト(Ingestion) データ登録時 文書をチャンクに分け、埋め込みに変換する
クエリ実行コスト(Query execution) 検索のたび毎回 質問文も埋め込みに変換しないと近傍探索できない
再埋め込みコスト(Re-embedding) 埋め込みモデル変更時 既存の全ドキュメントをやり直す

特に3つ目は見落とされがちです。

「新しい埋め込みモデルの方が精度が良いらしい」となった瞬間、全データの再処理が待っています。

では、専用ベクトルDBが本当に必要になるのはいつか。

埋め込み1つあたりは数キロバイト程度。

でも、それが数百万〜数億件に達し、汎用DBのメモリが悲鳴を上げ始めたとき。

さらに、大量のクエリが常に押し寄せ、ミリ秒単位の応答が求められるとき。

そこで初めて、専用ベクトルDBが本領を発揮します。

→ 専用ベクトルDBは「最初の一手」ではなく「最後の切り札」です。


6. 明日からできる:自分のRAGを「ピラミッド」で棚卸ししてみる

ここまでの話を、4段階のピラミッドとして整理しておきます。

レベル アプローチ 使いどころ 主なトレードオフ
1 検索なし(全部プロンプトに入れる) 資料が小さく、コンテキストに収まる 資料が増えるとコスト増・精度低下
2 キーワード検索(grep+AIエージェント) 資料は大きいが、言葉のズレが少ない セマンティック・ギャップは越えられない
3 既存DBのベクトルインデックス 意味検索が必要な中規模データ 埋め込みの3つのコストが発生
4 専用ベクトルDB 数百万〜数十億ベクトル、高頻度・ミリ秒応答 運用・コスト・複雑さが最大

明日の打ち合わせで、ぜひこの**「2つの問い」**を投げてみてください。

  1. そもそも、キーワード検索やエージェント処理を超える「意味検索」が本当に必要か?
  2. (Yesなら)いま使っている汎用DBのベクトル機能では足りないほどの、規模と速度が必要か?

加えて、手を動かすならこんな順番がおすすめです。

  • まず全投入で試す:資料が収まるなら、それで品質を測ってベースラインにする
  • 次にgrep+エージェント:うまくいかなかった質問を集め、「言葉のズレ」が原因かを確認する
  • ズレが原因なら、既存DBにベクトル列を足す:PostgreSQLなど、今あるDBの機能から始める
  • 専用DBの検討は、件数・QPS・レイテンシの数字が出てから

「なんとなく不安だから専用DB」ではなく、数字と失敗例を根拠に一段ずつ登る。

これだけで、無駄なインフラはかなり減らせるはずです。

→ 登る理由が言えないなら、まだ登らなくていい。


7. 結論:ピラミッドの頂上は、ゴールではない

このブログでは、AIエージェントの話を何度も取り上げてきました。

今回の話も、根っこは同じだと感じています。

エージェントが「考えて、試して、やり直す」ことができるようになったことで、道具の選び方そのものが変わってきている――ということです。

かつては「検索精度を上げるには、より高度な仕組みを」が当たり前でした。

でも今は、シンプルな道具を賢く何度も使う、という選択肢がある。

1973年のgrepが、2026年のAIエージェントの手で再び輝いているのは、その象徴なのかもしれません。

整理すると――

  • 情報がコンテキストに収まるなら、検索そのものを省く
  • キーワードで足りるなら、grepとエージェントで
  • 意味検索が必要でも、まずは既存DBから
  • 専用ベクトルDBは、規模と速度が本当に求められたときに

ピラミッドの頂上を目指すこと自体が目的になると、たいてい落とし穴にはまります。

各段のトレードオフを冷静に見極めること。

それが、いまのAIアーキテクチャ設計で一番効く「技術」なのだと思います。

さて――

あなたのプロジェクトのワークロードは、このピラミッドのどの段にいますか?

そして、それは「本当に必要だから」そこにいるのでしょうか......。

Comment(0)