SearXNG 入门:搭建一个属于自己的搜索引擎
SearXNG 是一个开源的元搜索引擎(Meta Search Engine)。
它和 Google、Bing 最大的区别是:SearXNG 本身并不维护一套巨大的网页索引,而是把你的搜索请求发送给多个搜索引擎,再把结果统一整理后返回。官方把不同搜索源的适配代码称为 Engine Adapter。(SearXNG Documentation )
简单来说:
用户
↓
SearXNG
↓
Google / Bing / DuckDuckGo / Wikipedia ...
↓
聚合、整理、去重
↓
返回搜索结果
因此,我们可以把 SearXNG 理解成一个“搜索引擎聚合层”。
为什么用 SearXNG?
最大的特点是可自部署、可配置、隐私友好。
你可以决定启用哪些搜索引擎,也可以把它部署在自己的服务器上,不需要直接把所有搜索行为交给某一个搜索平台。
Docker 部署
最简单的入门方式是 Docker Compose,这也是官方目前推荐的容器化部署方式。(SearXNG Documentation )
首先创建目录:
mkdir -p searxng/core-config
cd searxng
下载官方 Compose 配置:
curl -fsSL \
-O https://raw.githubusercontent.com/searxng/searxng/master/container/docker-compose.yml \
-O https://raw.githubusercontent.com/searxng/searxng/master/container/.env.example
创建环境配置:
cp .env.example .env
启动:
docker compose up -d
查看容器:
docker compose ps
启动成功后,默认容器服务使用 8080 端口。(SearXNG Documentation )
配置 SearXNG
主要配置文件是:
core-config/settings.yml
SearXNG 支持继承默认配置,因此最简单可以写:
use_default_settings: true
general:
instance_name: "My Search"
server:
secret_key: "请换成随机字符串"
limiter: true
image_proxy: true
其中 secret_key 是最重要的基础配置之一,官方也明确要求最小部署至少设置它。(SearXNG Documentation )
修改配置后重新启动:
docker compose restart
它到底是怎么实现搜索的?
当我们输入:
docker tutorial
SearXNG 会根据配置选择多个 Engine。
例如:
SearXNG
├── DuckDuckGo Adapter
├── Bing Adapter
├── Wikipedia Adapter
└── 其他 Engine
每个 Adapter 负责把 SearXNG 的查询转换成对应搜索网站需要的请求,再解析返回结果。
最后 SearXNG 会把多个来源的结果合并,然后通过 Web 页面返回给用户。(SearXNG Documentation )
所以它的核心思路其实并不复杂:
接收搜索词
→ 请求多个搜索源
→ 解析结果
→ 聚合结果
→ 返回用户
这也是理解 SearXNG 最重要的一点:
它不是重新造一个 Google,而是在多个搜索引擎之上,再做一层可控的搜索入口。