fmn137.wiki
SearXNG
最終更新:
kemonowikii
-
view
概要
SearXNG(サークスエヌジー)とは、複数の検索エンジンや検索サービスから検索結果を取得し、それらを統合して表示するオープンソースのメタ検索エンジンである。
GoogleやBingのように巨大な独自検索インデックスだけを利用する一般的な検索エンジンとは性質が異なり、複数の検索サービスを横断して検索結果を取得できることを特徴とする。
SearXNGはプライバシー保護を重視して設計されており、利用者を追跡したり、検索履歴を利用してユーザープロファイルを作成したりしないことを掲げている。
また、オープンソースで提供されているため、自分のPCやサーバーにSearXNGをインストールしてセルフホスト型検索エンジンとして運用することも可能である。
Google、Bing、DuckDuckGo、Brave Searchなど既存の検索サービスを直接利用する方法とは異なり、自分で利用する検索エンジンや設定を選択できる点から、プライバシーを重視する利用者や開発者、ローカルLLMを利用するユーザーなどからも利用されている。
目次
SearXNGとは
SearXNGは、2021年頃に従来のメタ検索エンジン「searx」から派生して開発が開始された検索エンジンである。
「検索される側のウェブサイトを独自にすべて収集して巨大な検索インデックスを構築する」というより、外部の検索サービスに検索を行い、その結果をSearXNG上でまとめて表示する仕組みを採用している。
そのため、SearXNGは一般的に**メタ検索エンジン(metasearch engine)**に分類される。
公式ドキュメントでは多数の検索サービスへの対応が案内されており、利用する検索エンジンは設定によって変更できる。
特徴
複数の検索エンジンをまとめて利用できる
SearXNG最大の特徴は、複数の検索サービスから検索結果を取得できることである。
単一の検索エンジンだけに依存するのではなく、異なる検索サービスから得られた結果を一つの検索画面にまとめられる。
検索エンジンごとにインデックス、ランキング方式、フィルタリングなどが異なるため、ある検索エンジンでは発見しにくいページが別の検索サービスから見つかる場合もある。
プライバシーを重視している
SearXNGはプライバシー保護を主要な設計思想としている。
公式ドキュメントでは、ユーザーの検索情報を保存してプロファイルを作成しないことや、外部検索サービスへ検索要求を送る際に利用者の情報を直接渡さないための仕組みが説明されている。
ただし、公開されている第三者のSearXNGインスタンスを利用する場合、そのインスタンスの管理者を信頼する必要がある。
プライバシーをより自分自身で管理したい場合は、自分専用のSearXNGインスタンスを構築する方法がある。
セルフホストできる
SearXNGは自分のPCやサーバー上で動作させることができる。
このような運用方法は「セルフホスト」と呼ばれる。
自分専用のSearXNGを構築した場合、ソースコード、ログ設定、使用する検索エンジン、検索設定などを自分で管理できる。
ローカルPC上だけでSearXNGそのものを動作させることも可能である。
ただし、SearXNG本体をローカル環境で実行していても、通常は検索結果を取得するため外部の検索サービスやウェブサイトとの通信が発生する。
したがって「SearXNGをローカルで動かすこと」と「インターネット通信を一切行わない完全オフライン検索」は別の概念である。
検索方法
通常の検索エンジンと同様に、検索欄へキーワードを入力することで利用できる。
SearXNGには検索対象を指定する独自の検索構文も存在する。
たとえば「!」を使用すると、検索するエンジンやカテゴリーを指定できる。
!wikipedia 検索語
のように入力するとWikipediaを対象に検索できる。
また、
!images 検索語
とすることで画像検索カテゴリーを指定できる。
複数の指定を組み合わせることも可能である。
DuckDuckGoとの違い
DuckDuckGoとSearXNGは、どちらもGoogle検索の代替として名前が挙げられることがあるが、仕組みは異なる。
DuckDuckGoは一つの検索サービスとして運営されているのに対し、SearXNGは複数の検索サービスをまとめて利用するメタ検索エンジンである。
そのため、
DuckDuckGo
↓
検索結果
↓
検索結果
という一般的な検索方法に対して、SearXNGでは概念的に、
DuckDuckGo ─┐
Bing ──────┤
その他 ─────┤
↓
SearXNG
↓
検索結果
Bing ──────┤
その他 ─────┤
↓
SearXNG
↓
検索結果
という構成を取ることができる。
SearXNGからDuckDuckGoを検索元の一つとして利用することも可能である。
Googleとの違い
Google検索はGoogleが構築した巨大な検索インデックスとランキングシステムを中心として検索結果を提供している。
一方、SearXNGは外部の検索サービスから得られた検索結果を集約する。
また、Googleでは利用者に合わせた検索結果のパーソナライズが行われる場合があるのに対し、SearXNGはユーザーをプロファイリングしないことを特徴としている。
そのため、GoogleとSearXNGでは同じキーワードを検索しても結果や順位が異なる場合がある。
検索エンジンのカスタマイズ
SearXNGはオープンソースであり、カスタマイズ性が高い。
公式開発ドキュメントでも「Privacy」と並んで「Hackability」が重要な設計思想として掲げられている。
利用する検索エンジンの変更だけでなく、検索エンジン用アダプター、プラグイン、検索動作、設定ファイルなどを変更することが可能である。
検索エンジンの一般的な設定は「settings.yml」から変更できる。
これにより、既存の検索サービスをそのまま利用するだけではなく、自分の目的に合わせた検索環境を構築できる。
ローカルLLMとの組み合わせ
SearXNGはローカルLLMのウェブ検索機能として利用されることもある。
通常、ローカルLLMは学習済みモデル内部の知識だけでは、モデルの学習後に公開された最新情報を知ることができない。
そこで、
利用者
↓
ローカルLLM
↓
SearXNG
↓
Web検索
↓
検索結果
↓
ローカルLLM
↓
回答生成
↓
ローカルLLM
↓
SearXNG
↓
Web検索
↓
検索結果
↓
ローカルLLM
↓
回答生成
という構成にすることで、LLMが検索結果を参照して回答するシステムを構築できる。
この方式では、文章生成や推論をローカルLLMに担当させ、SearXNGをインターネット検索部分として利用する。
そのためSearXNGは、Ollama、llama.cppなどを利用したローカルAI環境とも組み合わせることができる。
AI検索エンジンへの応用
SearXNGとLLMを組み合わせることで、検索結果の一覧を表示するだけではなく、検索結果をAIが読み取り、質問に対する回答を生成するAI検索エンジンを構築することも可能である。
概念的には、
検索キーワード
↓
SearXNG
↓
複数検索エンジン
↓
Webページ取得
↓
LLM
↓
要約・回答生成
↓
出典付きAI回答
↓
SearXNG
↓
複数検索エンジン
↓
Webページ取得
↓
LLM
↓
要約・回答生成
↓
出典付きAI回答
という構成になる。
これはGoogleのAI検索機能や、回答生成型検索サービスに近い考え方である。
SearXNG自体とLLMを分離して構築すれば、SearXNGを検索バックエンド、LLMを回答生成バックエンドとして利用できる。
独自検索エンジンへの改造
SearXNGでは外部検索エンジンとの接続部分がアダプターとして実装されている。
そのため、既存の検索サービスだけではなく、独自の検索APIなどへ接続する検索エンジンを追加することも可能である。
さらにプラグインによって検索動作を変更することもできる。
これらを利用すると、自分が頻繁に使用する情報源を追加したり、特定用途向けの検索システムを構築したりできる。
SearXNGは単なる「Googleの代替検索サイト」としてだけではなく、自作検索システムを開発するための基盤として利用できる点も特徴である。
公開インスタンス
SearXNGには第三者が公開している「公開インスタンス」が存在する。
公開インスタンスを利用すれば、自分でサーバーを構築しなくてもSearXNGを試すことができる。
一方で、公開インスタンスは第三者によって管理されているため、その管理者を信頼する必要がある。
また、多数のユーザーが同じインスタンスを使用すると、検索先サービスからCAPTCHAを要求されたり、インスタンスのIPアドレスが一時的に制限されたりする可能性もある。
継続的に利用したい場合や設定を自由に変更したい場合は、自分専用のインスタンスを構築するという選択肢がある。
注意点
SearXNGを利用したからといって、インターネット上で完全な匿名性が自動的に保証されるわけではない。
SearXNGは検索時のプライバシーを保護するための機能を備えているが、検索結果から外部サイトへ移動した後は、そのウェブサイトとの通信が発生する。
また、公開インスタンスを利用する場合には運営者の設定やログ管理について利用者側から完全には確認できない場合がある。
プライバシーを重視する場合には、信頼できるインスタンスを利用するか、自分自身でインスタンスを構築する方法がある。









