中級 10 分ウェブ検索

SearXNG:ウェブ検索をモデルに提供する ローカル

端的な回答

SearXNG(AGPL-3.0ライセンスの自由ソフトウェアで、ユーザーの追跡もプロファイリングも行いません)は、セルフホスト型のメタ検索エンジンです。検索クエリを他の検索エンジンに転送し、その結果を統合します。APIキーも課金もありません。ローカルモデルと連携させる際の決め手は、settings.ymlの出力形式リストに「json」を追加し(デフォルトでは「html」のみ)、そのJSON出力をチャットインターフェースまたはエージェントに再接続することです。

オープンモデルは、この週の情報について一切把握せず、その回答に何らの警告も示しません。過去の月の話題についても、暗記した掛け算の表のように自然に語ります。ウェブ検索へのアクセスを提供することで、この問題は解決されます。SearXNGは、APIキーなし、請求なし、アカウントなしで利用可能な自前ホスティング型メタ検索エンジンであり、ローカルインストールの統合的なブロックとして最適です。

著者 Mohamed Meguedmi·更新 2026-09-28·Windows・macOS・Linuxでテスト済み

#ローカルモデルにウェブが必要な理由

モデルの知識は学習時点までに限られますが、その境界がどこにあるかをモデル自身が確実に把握しているわけではありません。解決策は2つあります。ご自身でプロンプトに事実を記載してモデルに与えるか、回答時にモデル自身が事実を探しに行ける手段を与えることです。検索は後者の一般的な形であり、質問がさまざまになると、最も拡張性の高い方法になります。

まず思い浮かぶのは商用の検索APIです。アカウントを作り、APIキーを取得し、リクエストごとに料金を支払います。SearXNGは、セルフホスティングできる代替手段です。インスタンスは自分で運用し、検索リクエストは自宅から送信されます。アカウントはなく、自分で記録すると決めない限り、ログも残りません。データを自宅にとどめることこそが目的の構成なのに、裏口からすべての質問を外部サービスに送るのでは、そこで妥協するのは妙な話です。

このプロジェクトは、ユーザーを追跡せず、プロファイリングもしないメタ検索エンジンであると明示しており、自由ソフトウェアライセンスAGPL-3.0で配布されています。これは強いコピーレフトのライセンスです。変更した版をオンラインサービスとして提供する場合を含めて再配布するなら、対応するソースコードを同じ条件で再公開する必要があります。個人利用やチーム内での利用では、この条項は発動しません。変更した版を第三者に再配布する場合にのみ関わるもので、単に自宅や社内でインスタンスを動かすことには関わりません。

#SearXNGが実際に行っていること(魔法は使われていません)

ローカルAIキット

お使いのマシンで、プライベートかつ無料のChatGPTを1時間で構築 — LM Studio、Ollama、Open WebUI、ご自身のドキュメント、クラウド不要。

  • 永久に利用できるオンラインスペース
  • PDF + ファイル
  • 30日間返金対応

SearXNGはウェブをクロールせず、独自のインデックスも持ちません。仲介役として、検索クエリを設定可能な複数の既存検索エンジンに送信し、返された検索結果の重複を除いて順位を付け直し、ひとつの一覧にまとめて返します。問い合わせ先の検索エンジンに見えるのは、利用者のIPアドレスではなく、インスタンスのIPアドレスです。

この仲介役という立場は、プロジェクト自身が掲げるプライバシー保護の約束にもつながっています。インスタンスはユーザーを追跡したり、プロファイリングしたりしません。アカウントも、広告追跡用のCookieも、個人の身元に紐づけられた検索履歴もありません。この点でSearXNGは、検索クエリやクリックを継続的にプロファイリングすることをビジネスモデルの基盤とする商用検索エンジンと明確に異なります。

品質は継承されます
ご自身の具体的な用途で不要な情報ばかり返す検索エンジンは無効にしてください。どんなプロンプトの微調整よりも、モデルの回答の改善につながります。最初から不要な情報が混ざったコンテキストを、モデルが後から補うことはできないためです。
自動化は不正利用に見える
人間は1分間に数件の検索を発行しますが、エージェントのループは数十件を発行します。上流のエンジンは、キャプチャや一時的なブロックで応答し、これは空の結果として目に見える形で現れます。

検索元となる検索エンジンへの強い依存は、どのメタ検索エンジンにも共通する中心的なトレードオフです。SearXNGの品質は集約元の品質を超えることはできず、集約元の障害や変更の影響も受けます。検索エンジンがある日突然HTMLのマークアップを変更すると、SearXNG側の対応モジュールは、メンテナーが更新するまで動作しなくなります。そのため、長期間更新されていないインスタンスでは、一部の検索エンジンが明示的なエラーメッセージも出さず、いつの間にか応答しなくなることがあります。

#L'installer

  1. 01
    コンテナのデプロイ
    公式イメージは Docker Hub(searxng/searxng)と GHCR(ghcr.io/searxng/searxng)で公開されており、どちらもプロジェクト自身がメンテナンスしています。マシン 1 台で始めるなら、このイメージと Valkey(Redis のオープンソースのフォーク)のキャッシュサービスがあれば十分です。
  2. 02
    ローカルネットワーク内に限定する
    インターネットに公開されたインスタンスは数日で発見され、無料の中継として利用されます。その結果、そのインスタンスから上流の検索エンジンへのアクセスがブロックされます。インスタンスへのアクセスをローカルネットワークに限定するか、アクセス時に認証を設けてください。
  3. 03
    呼び出し元のマシンから確認する
    ブラウザから確認するのではありません。コンテナから別のコンテナを呼び出す場合は、localhostではなく、Dockerからアクセスできるアドレスが必要です。
!
旧リポジトリ searxng-docker が置き換えられました
多くのチュートリアルは今もsearxng-dockerリポジトリを案内していますが、このリポジトリは現在、プロジェクト自身によって「後継に置き換え済み(superseded)」と明示されています。新規インストールでは、メインリポジトリのコンテナ化ガイドに従う必要があります。searxng-dockerに基づく既存の環境には、文書化された移行手順があり、それを無視せずに従う必要があります。旧リポジトリを案内する古いチュートリアルに従うことは技術的には今も可能ですが、もはやプロジェクト自身が推奨する方法ではありません。

#誰もが見落としてしまう設定

デフォルトでは、新たにインストールされた SearXNG インスタンスは HTML だけを提供します。これは人間にとって最適ですが、プログラムにとってはまったく利用できません。公式ドキュメントでは、settings.yml の search.formats キーがデフォルトで「html」のみを含んでいることが確認されており、csv、json、rss といった形式は利用可能ですが、json を追加して再起動する必要があります。これは、SearXNG をチャットインターフェースに接続した際に発生する「動作しない」という問題のほとんどを引き起こす唯一の原因です。

!
ボット対策はあなた自身のアクセスもブロックします
公開インスタンスを保護するレートリミッターは、自分自身の自動呼び出しもブロックします。現在はsettings.ymlの設定だけでなく、Valkey(Redisのオープンソースフォーク)のデータベースも必要です。自分のネットワーク内だけからアクセスできるインスタンスでは、このリミッターを無効にすることこそが目的です。インターネットからアクセスできるインスタンスでは、有効のままにし、Valkeyの接続先ホストを正しく指定して、呼び出しに認証を設けます。

#あなたのモデルに接続する

最も一般的な統合ポイント
環境SearXNG の役割
ローカルチャット用ウェブインターフェース統合検索機能:インスタンスのURLを指定することで、回答に情報源のリストが付加されます。
エージェント用フレームワークエージェントが呼び出すことができる検索ツール
ドキュメント検索チェーンドキュメントのインデックスと併用する、時事的な質問に対応するための情報検索ステップ
自動化ツールJSONエンドポイントへのシンプルなHTTPリクエスト

仕組みは常に同じです。検索が抜粋とURLを返し、コードやインターフェースがその中からいくつかを選びます。それらをプロンプトに挿入してから、モデルが質問に回答します。モデル自身がウェブを閲覧するわけではなく、渡された内容を読むのです。そのため、ここではモデルのサイズよりも、抜粋の質とコンテキストウィンドウのサイズが重要になります。

#実際に効果のある設定

新規インストール直後のインスタンスでは、多数のエンジンがデフォルトで有効になっています。一見充実しているようですが、ノイズや重複が増え、対象のエンジンのうち最も遅いものが応答するまで待つため遅延も増えて、結果の質が薄まります。最初の本格的な改善で手を入れるのは、決してモデルのプロンプトではありません。有効なエンジンの一覧と、それらが想定する用途に実際に適しているかどうかです。

用途に合わない検索エンジンを無効にする
たとえば、技術ドキュメントを中心に使う場合、デフォルトで有効になっている画像検索やショッピング検索のエンジンは必要ありません。エンジンを1つ減らすごとに、ノイズの発生源が1つ減り、日々の運用で管理する上流へのリクエストも1つ減ります。
キャッシュを有効にする
共有のValkeyデータベースを使うと、ループ内で同じ質問を繰り返すエージェントの呼び出しごとに、同一の検索をやり直す必要がなくなります。これにより、応答時間と、上流の検索エンジンの貴重な利用枠の両方を節約できます。
検索結果数の上限を設定する
モデルが実際には3件しか読まないのに10件の結果を要求すると、具体的なメリットもないまま、コンテキストを大きく消費し、待ち時間も増えてしまいます。返される結果の数は、その後プロンプトで実際に活用する件数に合わせ、多すぎも少なすぎもしないようにしてください。
起動時にログを確認する
最近 Valkey に更新したインスタンスでは、ホスト名が依然として古いキャッシュサービスを指していると、エラーが表面化しないまま失敗することがあります。コンテナのログを確認すれば、そこにある問題を別の場所で探す手間を避けられます。

#予想される制限

エンジンのクォータ
検索結果が空になる場合、ほぼ常に上流側でのブロックが原因であり、SearXNG自体の設定ミスではありません。有効にする検索エンジンを減らし、Valkeyのキャッシュを増やしてください。特に、頻度制限なしで検索を繰り返すエージェントは使わないでください。
短い抜粋
詳しい内容を得るには、リンク先のページを取得し、不要な部分を取り除く必要があります。これは専用の抽出ツールの役割です。前段ですでに要約された結果を伝えるだけの検索エンジンの役割ではありません。
内容を理解したうえでの順位付けはありません
SearXNGは検索結果を統合しますが、質問の意味を理解するわけではありません。曖昧なクエリからは曖昧な文脈しか得られず、モデルはそれを律儀に要約しますが、質問の仕方が不適切だったことは一切指摘しません。
メンテナンスは自分で行う必要があります
アップストリームのエンジンがページを変更するため、モジュールもそれに追随する必要があります。1年間更新されずに放置されたインスタンスは、静かに劣化していきます。
Valkeyの移行は旧インスタンスに適用されます
1年以上前にデプロイされたインスタンスでは、まだ古いキャッシュサービスが参照されている可能性があります。レートリミッターに設定されているホスト名を確認してください。今日実際に起動しているコンテナと一致しない場合、ロボット対策は適切に悪用をブロックするのではなく、サイレントに失敗します。

#FAQ

SearXNGは無料ですか?+
はい、AGPL-3.0ライセンスの自由ソフトウェアで、セルフホストする方式です。独自のインデックスを維持する代わりに他の検索エンジンに問い合わせるため、ライセンス料やリクエストごとの課金はありません。自分で運営する他のサービスと同様に、ホスティング費用、電気代、保守にかかる時間はご自身で負担します。
自分のインスタンスがJSONではなくHTMLを返すのはなぜですか?+
JSONフォーマットがデフォルトで有効になっていないため、公式ドキュメントではインストール時にsearch.formatsに「html」のみが含まれていると確認されています。settings.ymlにjsonをこのリストに追加し、インスタンスを再起動してください。これはチャットインターフェースに接続する際に最もよく発生する障害です。
自分でインスタンスをホストする代わりに、公開インスタンスを使うことはできますか?+
理論上は可能ですが、実用上は難しいです。公開インスタンスは自動化されたアクセスを制限しており、まさにその理由でJSON形式を意図的に無効にしているものも多くあります。また、自分ではまったく管理できない、見知らぬ人のサーバーにリクエストを委ねることにもなり、そもそもこのツールをセルフホストする最大の利点が失われます。
GPU は必要か?+
いいえ。SearXNGは、リクエストを他のエンジンに中継し、その応答を統合する軽量なウェブサービスです。重い計算は伴わないため、一般的なサーバーで十分に対応でき、専用グラフィックスカードのない小型で安価な機種でも問題ありません。GPUを使うのは、その後でSearXNGが返した結果を読み取るモデルだけです。
結果がしばらく経つと空になるのはなぜですか?+
接続先の検索エンジンが、利用中のインスタンスを一時的に制限またはブロックしています。通常は、自動処理による問い合わせの頻度が高すぎたり、間隔が短すぎたりすることが原因です。有効な検索エンジンの数を減らし、結果をローカルにキャッシュしてください。また、無制限に検索を繰り返すエージェントを使っている場合は、その呼び出しの間隔を空けてください。
これによって、使用しているモデルの知識は最新になりますか?+
これにより、モデルは最近のテキストを読めるようになりますが、内部の知識を一度更新して、その後も最新の状態に保てるようになるわけではありません。品質は、取得した抜粋の内容と、学習時のまま固定された知識ではなく、その抜粋に実際に基づいて回答できるモデルの能力に左右されます。
SearXNGのAGPL-3.0ライセンスが自分にどのような影響を与えますか?+
内部利用や個人利用では、特に変わることはありません。インスタンスを動かすだけで特別な義務が生じることはありません。AGPLでは、変更したバージョンを再配布する場合、ソースコードを再公開する必要があります。これは、ローカルにインストールするソフトウェアとしてではなく、ネットワーク経由でアクセスできるサービスとして提供する場合も含みます。変更したインスタンスを他の人にサービスとして提供する前に、知っておくべき点です。
このガイドは役に立ちましたか?

ご意見、誤りのご指摘、補足はありますか?ぜひお知らせください。皆さんにとってより良いガイドにするために役立ちます。