news 2026/10/14 1:55:46

SearXNG 搜索引擎配置优化实录

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SearXNG 搜索引擎配置优化实录

SearXNG 是自托管的元搜索引擎,聚合多个搜索源的结果。默认配置下启用约 350 个引擎,但大部分在当前网络环境下不可用。本文记录一次从 350 个引擎精简到 19 个的过程。

测试环境:ARMv7l,Debian trixie,SearXNG 4.0.0

测试背景

SearXNG 默认启用所有引擎,但实际可用性取决于网络环境和引擎本身的反爬策略。直接使用默认配置会导致:

  • 大量无效请求拖慢响应

  • 界面显示大量不可用引擎

  • 结果被不可用引擎的错误信息干扰

需要根据实际网络环境筛选可用引擎。

可用引擎筛选

网页搜索

引擎中文英文结果数状态
bing支持支持11稳定
360search支持支持4可用
sogou支持支持9可用
baidu不支持-0验证码拦截
duckduckgo不支持不支持0超时
google不支持不支持0不可达
brave不支持不支持0超时

Bing 是最稳定的选择,中英文都支持,无验证码。需要注意配置cn.bing.com而非国际版。

360search 中文搜索效果好,无验证码,英文结果较少。

搜狗中文搜索好,有微信公众号内容,但图片/视频/微信垂直搜索无结果。

百度反爬严格,自动请求触发验证码,不建议使用。

学术搜索

引擎结果数状态
arxiv11稳定
crossref25稳定
europepmc1可用
core.ac.uk0无结果

arXiv 覆盖物理、数学、计算机等领域预印本。Crossref 做 DOI 引用查询。EuropePMC 专注生物医学。

技术搜索

引擎用途
stackoverflow编程问题
askubuntuUbuntu 相关问题
superuser系统管理
pypiPython 包
crates.ioRust 包
github trendingGitHub 趋势

文档搜索

引擎用途
arch linux wikiArch Linux 文档
nixos wikiNixOS 文档
azure微软云文档

不可用引擎分类

类别代表引擎原因
网络不可达Google、DuckDuckGo、Brave、Wikipedia、Yandex超时或被墙
反爬拦截Baidu验证码
需要 API key500px、Flickr、DeviantArt、Pexels未注册
无结果core.ac.uk、astrophysics data system、pixabay引擎失效或查询不匹配

优化前后对比

项目优化前优化后
引擎数量35019
减少比例-95%
搜索速度慢快
界面混乱简洁

减少无效请求后,响应速度提升明显。

配置方法

settings.yml 关键配置

yaml

ui: default_locale: 'zh-Hans-CN' search: autocomplete: 'bing' default_lang: 'zh-CN'

指定引擎搜索

bash

# 中文搜索 curl 'http://127.0.0.1:8080/search?q=人工智能&engines=bing&language=zh-CN' # 英文搜索 curl 'http://127.0.0.1:8080/search?q=machine+learning&engines=bing&language=en' # 学术搜索 curl 'http://127.0.0.1:8080/search?q=transformer&engines=arxiv&language=en' # 技术搜索 curl 'http://127.0.0.1:8080/search?q=python+async&engines=stackoverflow&language=en'

不指定engines参数时,使用所有启用的引擎。

SearXNG 工作机制

SearXNG 本身不爬取网页,它把查询转发给各个上游搜索引擎,解析返回的 HTML 或 JSON,统一格式后返回给用户。

请求流程:

  1. 用户发起查询

  2. SearXNG 并行请求所有启用的引擎

  3. 每个引擎返回结果,SearXNG 解析

  4. 合并去重,按相关性排序

  5. 返回统一格式的结果页

因此引擎的可用性取决于上游网站是否可达、是否有反爬、是否需要认证。

引擎配置项

SearXNG 的引擎配置在settings.yml的engines:段。

yaml

engines: - name: bing engine: bing shortcut: bi categories: [general, web] disabled: false

常用字段:

字段说明
name引擎显示名
engine引擎类型(对应代码中的实现)
shortcut快捷前缀,如!bi
categories分类,general/images/videos/news/science 等
disabled是否禁用
timeout超时秒数
weight结果权重
language支持的语言

分类说明

SearXNG 按类别组织引擎:

分类说明代表引擎
general通用网页搜索bing、google
images图片搜索flickr、pixabay
videos视频搜索youtube
news新闻搜索google news
science学术搜索arxiv、crossref
it技术搜索stackoverflow
files文件搜索-
social media社交搜索-

查询时可以指定分类:!images 猫。

结果权重与排序

SearXNG 合并多个引擎的结果后,按以下因素排序:

  1. 引擎权重(weight字段)

  2. 结果在原始引擎中的排名

  3. 标题和摘要与查询的匹配度

  4. 多个引擎同时返回同一结果时加权

可以通过调整weight影响排序。

超时与重试

每个引擎有独立的超时设置。默认超时较短,慢速引擎容易被截断。

yaml

engines: - name: bing engine: bing timeout: 3.0

超时过短会导致结果不全,过长会拖慢整体响应。需要根据网络情况调整。

常见问题

引擎显示可用但无结果

可能是引擎的 HTML 结构变了,SearXNG 的解析器跟不上。需要更新 SearXNG 或修改解析逻辑。

某个引擎突然全部超时

上游可能改了反爬策略,或暂时不可达。建议先禁用该引擎,观察一段时间。

需要 API key 的引擎

部分引擎(如图片搜索)需要注册 API key。在settings.yml中配置对应字段:

yaml

engines: - name: flickr engine: flickr api_key: 'your_key_here'

如何测试引擎可用性

bash

# 测试单个引擎 curl 'http://127.0.0.1:8080/search?q=test&engines=bing&format=json' # 查看所有引擎状态 curl 'http://127.0.0.1:8080/config'

优化建议

  1. 根据网络环境筛选引擎,不可达的直接禁用

  2. 中英文搜索分开配置,避免中文引擎挤压英文结果

  3. 学术、技术、文档类引擎按需启用

  4. 定期检查引擎可用性,及时禁用失效引擎

  5. 调整超时和权重,平衡响应速度和结果完整性

精简后的引擎清单

分类引擎
网页搜索bing、360search、sogou、mojeek、startpage、swisscows
学术搜索arxiv、crossref、europepmc
技术搜索stackoverflow、askubuntu、superuser、pypi、crates.io、github trending
文档搜索arch linux wiki、nixos wiki、azure
AI 搜索cloudflareai

共 19 个。


SearXNG 的核心问题是默认配置过于激进,启用了大量在当前网络下不可用的引擎。按实际情况筛选后,可用性和响应速度都有明显改善。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/14 1:55:21

AI 入门—— 一起来学Function Call、MCP、Agent

文章大纲引言一、Function Call1、核心价值2、Function Call 时序图3、Function call如何嵌入到模型中?二、什么是MCP?三、MCP Server1、MCP 架构2、MCP的通信机制3、MCP Server的核心功能3.1、动态工具发现3.2、权限控制与安全执行3.3、资源暴露与工具调用3.4、实…

作者头像 李华
网站建设 2026/10/14 1:55:10

Dapper

不使用Dapper是什么意思 & Dapper是什么 1. Dapper 是什么 Dapper 是.NET生态里最流行的轻量ORM(对象关系映射)库,Stack‑Overflow开发的,NuGet包名 Dapper。ORM:把数据库表 → C#实体类对象自动映射,不…

作者头像 李华
网站建设 2026/10/14 1:54:48

SSM+微信原生小程序宠物寄养系统毕业设计实战

简介:本资源是一份完整的本科毕业设计论文,面向计算机专业学生及微信小程序开发初学者,聚焦宠物寄养服务场景的信息化解决方案。论文以微信小程序为前端载体,结合SSM(SpringSpringMVCMyBatis)后端框架与MyS…

作者头像 李华
网站建设 2026/10/14 1:52:51

WebGL三维散点图实战:从数据清洗到交互渲染的性能优化指南

简介:这份资源是面向Qt开发者与3D数据可视化学习者的Qt 3D散点图示例工程,围绕在三维空间中渲染交互式数据点这一核心问题展开,适合已具备一定C与Qt基础、希望入门Qt 3D模块的中级开发者参考实践。压缩包共6个文件,约7KB&#xff…

作者头像 李华
网站建设 2026/10/14 1:52:45

数据库版本混乱?Liquibase 自动迁移 + contexts 裁剪,qkl-boot 这么管的

数据库版本混乱?Liquibase 自动迁移 contexts 裁剪,qkl-boot 这么管的 导读:新同事拉代码一启动,表没建、字段没加、索引没配,报错信息五花八门——这种痛在多人协作项目里太常见了。qkl-boot 的做法是启动时用 Liqui…

作者头像 李华