进阶 10 分钟网络搜索

SearXNG:将网络搜索功能赋予模型 本地

直接回答

SearXNG(采用 AGPL-3.0 许可证的自由软件,不跟踪用户,也不为用户建立画像)是一个自托管的元搜索引擎:它将您的查询转发给其他搜索引擎,并合并结果,无需 API 密钥,也没有账单。对于本地模型,打通整个流程的关键是将“json”添加到 settings.yml 的格式列表中(默认仅有“html”),然后将这份 JSON 输出接入您的聊天界面或智能体。

一个开源模型完全不会了解本周的任何内容,其回答中也不会有任何提示:它会像背乘法表一样,毫无保留地谈论上个月的情况。若允许其进行网络搜索,这一问题便可得到解决。SearXNG 是一个自托管的元搜索引擎,无需 API 密钥、无需按请求收费、无需注册账户——这使其成为本地部署中的一块可靠组件,用户无需将每个问题发送给第三方。

作者: Mohamed Meguedmi·更新于 2026-09-28·已在 Windows、macOS 和 Linux 上测试

#为何本地模型需要网络访问

模型的知识截止于其训练日期,它无法确定这一边界的具体位置。有两种解决方案:在提示(prompt)中自行提供事实,或在回答时赋予模型自行获取事实的能力。检索是第二种方案的通用形式,当问题变化时,其可扩展性最强。

最直接的方案是使用商业搜索API:需注册账号、获取密钥,并按请求计费。SearXNG提供了自主部署的替代方案。您自行托管实例,所有请求均从本地发出,无需注册账号,除非您主动选择,否则不会记录任何日志。对于数据必须保留在本地的场景而言,将每个问题通过服务接口发送给第三方,显然并非一个合理的终止点。

该项目本身明确定位为一个元搜索引擎,用户不会被追踪或画像,且采用 AGPL-3.0 开源许可证。这是一项强 copyleft 许可证:若对软件进行修改后重新分发,包括作为在线服务提供,必须以相同条款重新发布源代码。对于个人或团队内部使用,此条款不会触发:它仅适用于向第三方分发修改版本,而不适用于在自家或企业环境中运行实例。

#SearXNG 能做什么:没有什么魔法

本地 AI 套件

只需 1 小时,即可在您的电脑上拥有专属的免费 ChatGPT — LM Studio、Ollama、Open WebUI、您的文档,无需云端。

  • 在线空间,终身可用
  • PDF + 文件
  • 终身更新

SearXNG 不会爬取网页,也不拥有任何索引。它是一个中间层:您的查询会发送到一组可配置的现有搜索引擎,返回的结果经过去重和重新排序后,汇总成一份列表提供给您。被查询的搜索引擎看到的是实例的 IP 地址,而不是您的 IP 地址。

这种中介角色也解释了项目自身强调的隐私承诺:实例不会跟踪用户,也不会为用户建立画像。没有账户,没有广告跟踪 Cookie,也没有与身份关联的搜索历史——这使 SearXNG 与商业搜索引擎形成鲜明区别,后者的商业模式恰恰依赖于长期记录搜索查询和点击行为来建立用户画像。

质量取决于上游内容
禁用会引入噪音的引擎以适应您的具体使用场景:这比任何提示词优化都能更有效地提升模型响应质量,因为模型无法弥补已污染的初始上下文。
自动化看起来像滥用
一个人每分钟发起几次搜索,而智能体在循环运行时会发起数十次。上游搜索引擎会要求验证码验证或实施临时封锁,您看到的则是空的搜索结果。

对上游搜索引擎的这种强依赖,是所有元搜索引擎的核心权衡:SearXNG 的表现不可能优于其聚合的内容,也会受到上游搜索引擎故障和变更的影响。某个搜索引擎一旦突然改变 HTML 标记结构,就会导致 SearXNG 中对应的模块失效,直到维护者将其更新。这也解释了为什么一个长期未更新的实例中,某些搜索引擎会悄然停止返回结果,却没有明确的错误提示。

#L'installer

  1. 01
    部署容器
    官方镜像发布在 Docker Hub (searxng/searxng) 和 GHCR (ghcr.io/searxng/searxng),均由项目自身维护。在单机环境中,镜像加上一个 Valkey 缓存服务(Redis 的开源分支)就足以启动运行。
  2. 02
    仅允许本地网络访问
    向互联网开放的实例会在几天内被发现,并被当作免费中继使用,导致上游搜索引擎封禁它的访问。因此,应让实例仅绑定到本地网络,或在访问入口设置身份验证。
  3. 03
    从调用该服务的机器上进行验证
    不要从您的浏览器中验证。一个容器调用另一个容器时,需要使用从 Docker 内部可访问的地址,而不是 localhost。
!
旧的searxng-docker仓库已被替换
许多教程仍指向 searxng-docker 仓库,而项目方现已将该仓库标记为已被替代(superseded)。新安装应遵循主仓库的容器化指南;基于 searxng-docker 的现有安装应遵循已有文档说明的迁移路径,而不是忽略它。按照指向旧仓库的过时教程操作,在技术上仍然可行,但这已不再是项目方推荐的方式。

#大家普遍忽略的设置

新安装的 SearXNG 默认仅提供 HTML 内容:对人类来说完美,对程序而言完全无用。官方文档确认,settings.yml 文件中的 search.formats 配置项默认值仅为 'html',而 csv、json 和 rss 格式是可选的;需手动添加 json 并重启服务。这是连接 SearXNG 到聊天界面时绝大多数‘无法正常工作’问题的唯一原因。

!
防机器人机制也会拦截您
保护公共实例的限流器也会阻止您自己的自动化调用——而且它现在需要 Valkey 数据库(Redis 的开源分支),不再只需在 settings.yml 中调整设置。对于仅允许您的网络访问的实例,禁用限流器正是所要达到的目的;对于可从互联网访问的实例,则应保留限流器,正确设置其连接的 Valkey 主机,并对调用进行身份验证。

#连接至您的模型

最常见的集成点
环境SearXNG 的角色
本地聊天网页界面集成搜索服务提供方:填写实例的 URL 后,回答就会附带来源列表
智能体框架智能体可调用的搜索工具
文档检索链用于时事问题的检索步骤,与您的文档索引配合使用
自动化工具只需向 JSON 端点发起一次 HTTP 调用

流程始终相同:搜索返回内容片段和网址,您的代码或界面从中选取几个,再将它们插入提示词,然后模型才回答提出的问题。模型不会浏览网页:它只读取提供给它的内容。因此,这里内容片段的质量和上下文窗口的大小,比模型规模更重要。

#真正影响运行效果的设置

新安装的实例默认启用大量引擎,看似提供了丰富选择,却会降低质量:噪声更多、重复内容更多,而且为了等这一批中最慢的引擎返回结果,延迟也更高。第一项真正的改进从来不是调整模型的提示词,而是调整已启用的引擎列表,并检查这些引擎是否确实适合目标用途。

关闭无关的引擎
例如,以技术文档为主的使用场景不需要那些默认启用的图像或购物搜索引擎。每减少一个引擎,就少一个噪声来源,也少一条日常需要处理的上游请求。
启用缓存
共享的 Valkey 数据库可以避免智能体在循环中重复提出同一问题时,每次调用都重新执行相同的搜索,从而既缩短响应时间,又节省上游搜索引擎宝贵的配额。
设定返回结果的数量限额
模型实际只会读取三个结果,却要求返回十个,会白白占用大量上下文并增加延迟,毫无实际收益。返回结果的数量应与提示词后续实际使用的数量一致,不多也不少。
启动时监控日志
最近更新为使用 Valkey 的实例,如果主机名仍指向原来的缓存服务,可能会静默失败。查看一下容器日志,就能避免到别处寻找实际出在这里的问题。

#需预先考虑的限制

搜索引擎的配额
搜索结果为空,几乎总是意味着上游拦截,而不是 SearXNG 本身的配置错误。减少启用的搜索引擎,更多地利用 Valkey 缓存,尤其不要让智能体在没有任何频率限制的情况下循环搜索。
短文本片段
要获取深入的内容,需要抓取并清洗链接指向的网页:这是专用提取工具的工作,而不是搜索引擎的工作;搜索引擎只是转发已经在上游汇总好的结果。
没有智能排序
SearXNG 只是合并搜索结果,并不理解您的问题。模糊的查询会返回模糊的上下文,模型会认真地加以总结,却始终不会指出提问本身表述不当。
维护工作由您负责
上游搜索引擎会修改页面,模块必须随之调整。一个实例若一年不更新,运行效果就会在不知不觉中变差。
迁移到 Valkey 涉及的是旧实例
一年多以前部署的实例,可能仍然指向旧的缓存服务。请检查限流器配置的主机名:如果它与当前实际启动的容器不匹配,反机器人保护就会悄无声息地失效,而无法正常阻止滥用。

#FAQ

SearXNG 免费吗?+
是的,这是采用 AGPL-3.0 许可证的自由软件,由您自行托管,没有许可费用,也不按请求收费,因为它查询其他搜索引擎,而不是维护自己的索引。您需要承担托管、电力和维护时间的成本,就像运营任何其他自托管服务一样。
为什么我的实例返回 HTML 而不是 JSON?+
由于JSON格式默认未启用:官方文档确认安装时search.formats仅包含「html」。请在settings.yml中将「json」添加至该列表,并重启实例。这是连接聊天界面时最常见的阻塞问题。
是否可以使用公共实例替代自建实例?+
理论上可以,实际使用中不行:公共实例会限制自动化流量,许多实例正是因此主动禁用 JSON 格式。这也相当于把您的查询交给一个陌生人的服务器,而您对该服务器完全没有控制权,从而失去了最初自行托管这个工具的主要意义。
需要 GPU 吗?+
不需要。这是一个轻量级 Web 服务,会将请求转发给其他引擎并合并它们的响应;不涉及繁重的计算,一台普通服务器就绰绰有余,即使是没有独立显卡的小型廉价机型也足够。GPU 仅用于随后读取 SearXNG 返回结果的模型。
为什么结果会在一段时间后变为空白?+
上游搜索引擎暂时限制或封锁了您的实例,通常是因为自动化流程发起查询过于频繁、速度过快。请减少启用的搜索引擎数量,在本地缓存结果;如果有智能体无限循环搜索,也请拉长它每次调用之间的间隔。
这能让我的模型保持最新吗?+
这会给模型提供近期文本供其阅读,但这并不等于一劳永逸地更新其内部知识。质量取决于检索到的片段,以及模型能否真正依据这些片段,而不是依赖训练时形成的固定记忆。
SearXNG的AGPL-3.0许可证对我有什么影响?+
对于内部或个人使用,没有影响:运行实例不会触发任何特殊义务。AGPL 要求,如果您重新分发修改后的版本,就必须重新发布源代码,其中也包括通过网络提供服务,而非提供本地安装的软件——在将修改后的实例作为服务提供给他人之前,需要了解这一点。
这份指南对您有帮助吗?

有反馈、发现了错误,或想补充说明?请告诉我们,让这份指南对每个人都更有帮助。