文章目录
- 8.5 联网搜索引擎
-
- 8.5.1 SearXNG介绍
- 8.5.2 SearXNG安装
- 8.5.3 SearXNG集成
- 8.5.4 SearXNG常见问题
-
- 1. 问题描述
- 2. 问题分析
- 3. 问题解决(临时)
- 3. 问题解决(永久)
- 8.5.5 Open WebUI使用联网搜索
本文节选自《DeepSeek本地部署与应用开发:政府与企业级实战案例解析》(北京大学出版社)第8.5章。若希望深入探讨相关内容,诚挚推荐您购买全书,深入阅读。
8.5 联网搜索引擎
众所都知,大模型本身是没有联网功能,DeepSeek之所以能够联网搜索,是因为它在应用层面调用了搜索引擎接口。同理,Open WebUI平台也是在应用层面集成了多种搜索引擎,为用户提供了灵活的配置选项。
Open WebUI基于安全考量,默认情况是关闭联网搜索功能。如果需要Open WebUI开启联网搜索功能,需要手动配置联网搜索引擎。Ope Open WebUI支持多种搜索引擎,包括但不限于SearXNG(开源元搜索引擎)、DuckDuckGo(隐私友好型搜索引擎)、SerpApi(通用搜索引擎API)、SearchApi(多引擎搜索API)、Mojeek(Mojeek搜索引擎)、Kagi(Kagi搜索引擎)、Jina(Jina神经搜索引擎)、Google PSE(Google可编程搜索引擎)、Exa(Exa搜索引擎)、Brave(Brave搜索引擎)、Bing(必应搜索)等等。
大多数的搜索引擎依靠第三方云服务,需要到对应的第三方平台注册账号,创建API项目,获取API密钥,最后将API添加到Open WebUI中才能够使用。
除了DuckDuckGo无需任何额外配置,开箱即用。但是DuckDuckGo 会对频繁的搜索请求进行速率限制,以防止滥用。这就造成很慢的搜索速度,影响用户体验,因此不推荐。
综上所述,笔者推荐的使用SearXNG搜索引擎来扩展Open WebUI的联网搜索功能。
8.5.1 SearXNG介绍
SearXNG是一个开源、隐私优先的元搜索引擎,由SearX分支发展而来,旨在提供更灵活、轻量化的搜索聚合服务。它通过整合多个搜索引擎(如Google、Bing、DuckDuckGo等)的结果,为用户提供去中心化、无追踪的搜索体验。其主要功能特性如下。
- 隐私保护:不记录用户搜索历史、IP 地址或个人信息。支持 HTTPS 加密,本地处理搜索请求(自托管时)。
- 高度可定制化:自由添加/删除搜索引擎源(支持 800+引擎)。调整结果排序规则、界面主题、语言等。
- 去中心化:用户可自建实例(通过 Docker 或手动部署),避免依赖单一服务。支持联合搜索(通过其他 SearXNG 实例扩展结果)。
- 多平台支持:提供网页端、Android/iOS 应用、浏览器扩展(如 Firefox/Chrome)。
SearXNG工作流程如图8.42所示,主要有5个步骤,其核心设计在保证隐私安全的前提下实现多源搜索聚合。

8.5.2 SearXNG安装
本节将介绍基于Docker安装SearXNG的详细步骤指南。
(1)打开 Windows PowerShell或者CMD,在其中输入以下命令,拉取SearXNG最新的镜像。
docker pull searxng/searxng:latest
(2)打开 Windows PowerShell或者CMD,在其中输入以下命令,启动SearXNG。
docker run -d –name searxng -p 8080:8080 –restart=unless-stopped searxng/searxng:latest
- docker run:创建并启动一个新的 Docker 容器。
- -d:让容器在后台以“守护模式”运行。
- –name searxng:为容器指定一个名称。
- -p 8080:8080:将容器内部的端口映射到宿主机的端口。
- –restart unless-stopped:设置容器重启策略:除非手动停止,否则自动重启服务。
- searxng/searxng:指定要运行的 Docker 镜像。
(3)打开 浏览器,访问网址http://localhost:8080/,如图8.43所示,说明SearXNG已成功启动。

8.5.3 SearXNG集成
本节将介绍将SearXNG集成到 Open WebUI 的详细步骤指南。
(1)打开Open WebUI平台,如图8.44所示,单击页面左下角管理员账户的头像,依次选择“管理员面板”→“设置”→“联网搜索”即可进入联网搜索设置界面。
(2)在联网搜索设置界面中,调整“联网搜索引擎”的配置,从下拉菜单中选择“searxng”,并在对应的输入框中填入SearXNG查询URL。
- 基于Docker启动:“http:// host.docker.internal:8080/search?q=”。
- 本地服务启动:“http://localhost:8080/search?q=”。
(3)至于搜索结果数量和并发请求这两个参数,用户可以按需修改。
(4)单击界面右下角“保存”按钮,即可完成设置。

8.5.4 SearXNG常见问题
1. 问题描述
首次部署SearXNG后,用户进行搜索时可能遇到图8.45所示的提示:“搜索引擎超时,未找到结果”。具体表现为:查询内容(如“哪吒之魔童闹海”)在多个搜索引擎(如Brave、DuckDuckGo、Google等)中均触发超时。

2. 问题分析
- 网络连通性问题:可能因容器无法稳定访问外部搜索引擎、可能因防火墙规则、可能因DNS解析失败、可能因网络延迟、可能因未正确设置代理服务器等问题导致。
- 搜索引擎配置问题:可能因某些搜索引擎可能在国内网络环境下无法正常访问,或者配置文件中的搜索引擎列表需要调整。
3. 问题解决(临时)
临时解决方案可以快速解决该问题,具体步骤如下。但是,此方法的改动仅存储在浏览器的Cookie中,仅对当前用户生效,其他用户或Open WebUI对接使用SearXNG的时候,这个问题依旧会存在。
(1)单击SearXNG网页右上角的设置按钮,进入SearXNG首选项界面。
(2)在SearXNG首选项界面,选择“搜索引擎”页签,并拉到网页最底部。
(3)如图8.46所示,勾选360search(ZH)、baidu(ZH)、sogou(ZH)等中文搜索引擎,这些搜索引擎在国内网络环境下通常具有更好的访问稳定性。。
(4)最后,单击网页左下角“保存按钮”,即可完成搜索引擎的修改设置。
(5)测试验证问题是否解决,再次执行搜索操作,如正常获取到搜索结果(如图8.47所示),则表明问题已解决。


3. 问题解决(永久)
永久解决该问题的方案的具体步骤如下,该方案通过修改SearXNG的配置文件从根本上解决该问题。
(1)如图8.48所示,打开Docker Desktop软件,选中SearXNG容器,单击“Action” →“View files”,进入SearXNG容器的文件浏览器。

(2)如图8.49所示,在SearXNG容器的文件浏览器中,找到“/etc/searxng/settings.yml”文件,选中并右键选择“Edit file”按钮,打开SearXNG设置文件进行修改。

(3)在“/etc/searxng/settings.yml”文件中搜索“baidu”和“360”字眼,找到并将“disable”字段的值改成“false”,或者直接删掉“disable”字段和值,如下代码所示。
– name: baidu
baidu_category: general
categories: [general]
engine: baidu
shortcut: bd
disabled: false
– name: 360search
engine: 360search
shortcut: 360so
disabled: false
8.5.5 Open WebUI使用联网搜索
在Open WebUI平台使用联网搜索功能时,只需要打开对话输入框下方“联网搜索”按钮,如图8.50所示,即可开启或者关闭该功能。
需要注意的是,此功能需要在每个聊天中手动开启或关闭,并且设置仅在当前会话中有效。例如,刷新页面或切换到其他聊天时,设置会自动关闭,这样设计的目的是为了更好地保护用户数据的隐私和安全。

Open WebUI使用联网搜索功能的实际应用示例,如图8.51所示,我们通过咨询DeepSeek同一个问题“帮忙查询下哪吒之魔童闹海的实时票房是多少”,来测试在打开和关闭联网搜索功能时,DeepSeek给出的回复差异。
- 未打开“联网搜索”开关,DeepSeek无法提供实时票房信息。
- 打开“联网搜索”开关后,DeepSeek则会联网查询并直接给出正确的实时票房答案。


本文节选自《DeepSeek本地部署与应用开发:政府与企业级实战案例解析》(北京大学出版社)第8.5章。若希望深入探讨相关内容,我们诚挚推荐您购买全书,深入阅读。
【新书推荐】《DeepSeek本地部署与应用开发:政府与企业级实战案例解析》 | 北京大学出版社
若觉得文章对你有帮助,随手『点赞』、『收藏』、『关注』,也是对我的支持。






