SuperAPI AI 工具集

searxng-search

通用与其它

查看项目

更新于 10-15 14:19

技能介绍

SearXNG Search 是一个基于本地 SearXNG 实例的增强型网络与软件包仓库搜索技能。SearXNG 是一款注重隐私的元搜索引擎,可在本地运行,聚合多个搜索引擎和软件包仓库的结果,并以干净的 JSON 格式输出。

用途 该技能用于在本地运行 SearXNG 并执行网络搜索与软件包仓库搜索,适合需要隐私保护、结构化 JSON 结果以及跨多个来源聚合搜索的场景。

主要能力

  • 聚合多个搜索引擎与软件包仓库的结果,返回 JSON 输出。
  • 支持多种搜索类别,包括:general(通用网页搜索,默认)、cargo(来自 crates.io 的 Rust crates)、packages(多仓库,涵盖 npm、rubygems、haskell/hoogle、hex、packagist、metacpan、pub.dev、pkg.go.dev、docker hub、alpine 等)、it(IT/技术资源,包含 GitHub、Docker Hub、crates.io)、repos(代码仓库)、code(代码搜索)、scientific publications(学术论文)、news、videos、images、books 等。
  • 支持通过 URL 参数限制结果数量(&limit=N)以及组合多个类别(&categories=cat1,cat2)。
  • JSON 响应包含 query、number_of_results、results(含 url、title、content、publishedDate、engine、engines、score、category)、answers、suggestions、corrections、infoboxes、unresponsive_engines 等字段。

使用方式

  1. 启动 SearXNG:运行 start-searxng --detach。该命令会自动检测 podman 或 docker,创建启用 JSON 输出的最小配置,在 http://localhost:8888 启动 SearXNG 并等待就绪。
  2. 停止 SearXNG:podman stop searxng 或 docker stop searxng。
  3. 自定义端口:start-searxng --port 9999 --detach。
  4. 执行搜索:通过 curl 请求本地接口,例如通用搜索 curl "http://localhost:8888/search?q=<query>&format=json";Cargo 搜索加 &categories=cargo;npm 搜索加 &categories=packages;代码仓库搜索加 &categories=repos;IT 资源搜索加 &categories=it。
  5. 查看所有可用类别:curl -s "http://localhost:8888/config" | jq '.categories'。
  6. 配置:可使用 start-searxng --config /path/to/your/config/dir 指定自定义配置目录(需包含 settings.yml),或手动启动容器。默认配置包含 use_default_settings: true、启用 JSON 格式、禁用速率限制(供本地使用)以及密钥。
  7. Nushell 集成:可定义 searx 辅助函数,接受 query、--category、--limit 参数,调用本地接口并筛选结果。
  8. 调试:可通过 curl 检查 SearXNG 配置、查看引擎错误(unresponsive_engines)或测试特定引擎。

适用场景

  • 需要隐私保护的本地搜索。
  • 以结构化 JSON 形式获取搜索结果,便于程序化处理。
  • 跨多个软件包仓库(Cargo、npm 等)检索软件包信息。
  • 搜索代码仓库、IT 技术资源、学术论文等特定类别内容。

限制与已知问题

  • PyPI 引擎虽已启用但在当前 SearXNG 配置下不返回结果,需使用替代方案:直接调用 PyPI JSON API(curl -s "https://pypi.org/pypi/<package>/json")或使用 qypi CLI(uvx qypi search pandas --json、uvx qypi info requests --json、uvx qypi releases flask --json)。
  • Cargo 类别有时返回空结果,可尝试 categories=packages 或 categories=it,它们也包含 crates.io。
  • 短时间内请求过多可能触发 SearXNG 速率限制。
  • 默认配置中的密钥需在生产环境中更改。