GEO

クエリリライティング

クエリリライティングとは、検索エンジン、RAGシステム、AI検索に対してクエリを実行する前に、ユーザーの生の質問を検索に適した形へと変換する手法です。あいまいな質問の意味を明確にしたり、代名詞を解決したり、同義語で拡張したり、サブクエストに分解したりと、幅広い変換を含みます。

クエリリライティングとは、検索エンジン、RAGシステム、AI検索に対してクエリを実行する前に、ユーザーの生の質問を検索に適した形へと変換する手法です。あいまいな質問の意味を明確にしたり、代名詞を解決したり、同義語で拡張したり、サブクエストに分解したりと、幅広い変換を含みます。

なぜ重要なのか

ユーザーが実際に入力する質問は、検索向けに最適化されていません。文脈に依存していたり(「あれってどうやるの」)、単語が抜けていたり(「inblog いくら」)、複数の意図が束ねられていたり(「GEOとSEOの違いとやるべきこと」)します。それらをそのままベクターDBに対して実行すると、ノイズを拾ってしまいます。クエリリライティングは検索精度と引用品質を大きく向上させ、2026年時点では本番のRAGパイプラインにおける標準的な前処理ステップとなっています。

よくある手法

クエリ拡張: 同義語や関連語を追加します。「ブログプラットフォーム おすすめ」は「ブログプラットフォーム おすすめ CMS WordPress Medium inblog」になります。セマンティック検索における再現率を高めます。

クエリ分解: 複数の意図を持つ質問をサブクエストに分割します。「GEOとSEOの違いは何で、どう対応すればいい?」は、「GEOとは?」「SEOとは?」「GEOとSEOの違いは?」「GEOへの対応戦略は?」という4つのクエリになります。クエリファンアウトと密接に関連しています。

共参照解決: それまでの会話を使って代名詞を明示的な名詞に置き換えます。「それはいくら?」は「inblogのBusinessプランはいくら?」になります。

HyDE(Hypothetical Document Embeddings): モデルがまず質問に対する仮想的な回答を生成し、その回答を検索のためにエンベディングします。回答は質問よりも実際の文書と構造的に似ているため、検索精度を高めます。

クエリ再構成: あいまいな質問をより明確なものに書き換えます。「動かない」は「公開したのに、ブログ記事が検索に表示されないのはなぜ?」になります。

言語横断翻訳: ユーザーが日本語で質問した場合でも、システムは英語に翻訳したバージョンも実行し、英語の文書を浮かび上がらせます。

パイプライン

  1. ユーザークエリの入力: 生の自然言語による質問を受け取ります
  2. LLMによるリライティング: 専用のプロンプトがクエリを分析し、書き換えられた形を生成します
  3. エンベディング: 書き換えられた各クエリをエンベディングします
  4. ベクター検索: ベクターDBから関連するチャンクを取得します
  5. リランキング: リランカーで結果を絞り込みます
  6. 生成: 上位のチャンクをLLMに渡し、最終的な回答を生成します

GEOへの示唆

ユーザーが入力するクエリと、実際にベクターDBに到達する書き換えられたクエリは異なります。GEO戦略は、書き換えられたクエリにもマッチするコンテンツを設計する必要があります。

質問形式の見出し: 「Xとは?」「Yのやり方」「XとYの違い」のような見出しを使うことで、分解されたサブクエストに直接マッチします。

同義語と二言語表記の用語: 固有名詞と一般的な用語の両方、現地名と並べた英語、そして展開形と略語の両方を提供することで、クエリ拡張を捉えやすくなります。

明示的な回答文: 各セクションを「Xとは…です」という断定的な文で始めることで、HyDEが生成する仮想的な回答にマッチします。

比較コンテンツ: 「A対B」という構造の記事は、比較クエリが分解されたときに、複数のサブクエストに自然と同時にマッチします。

Sources: