searxng-search
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseSearXNG Search
SearXNG 搜索
SearXNG is a privacy-respecting metasearch engine that you can run locally. It aggregates results from multiple search engines and package repositories, returning clean JSON output.
SearXNG是一款注重隐私的元搜索引擎,你可以在本地部署它。它聚合多个搜索引擎和软件包仓库的结果,返回简洁的JSON格式输出。
Quick Start
快速开始
Start SearXNG:
bash
start-searxng --detachThis will:
- Auto-detect podman or docker
- Create a minimal config with JSON output enabled
- Start SearXNG on
http://localhost:8888 - Wait until ready
Stop SearXNG:
bash
podman stop searxng # or: docker stop searxngCustom port:
bash
start-searxng --port 9999 --detach启动SearXNG:
bash
start-searxng --detach这将:
- 自动检测podman或docker
- 创建启用JSON输出的最小化配置
- 在启动SearXNG
http://localhost:8888 - 等待服务就绪
停止SearXNG:
bash
podman stop searxng # 或:docker stop searxng自定义端口:
bash
start-searxng --port 9999 --detachQuick Reference
快速参考
| Task | Command | Category |
|---|---|---|
| General web search | | |
| Search Cargo/crates.io | | |
| Search npm packages | | |
| Search code repositories | | |
| Search IT resources | | |
| Limit results | Add | - |
| Multiple categories | | - |
| 任务 | 命令 | 分类 |
|---|---|---|
| 通用网页搜索 | | |
| 搜索Cargo/crates.io | | |
| 搜索npm软件包 | | |
| 搜索代码仓库 | | |
| 搜索IT资源 | | |
| 限制结果数量 | 在URL中添加 | - |
| 多分类搜索 | | - |
Available Categories
可用分类
Run to see all categories:
bash
curl -s "http://localhost:8888/config" | jq '.categories'Notable categories:
- general: General web search (default)
- cargo: Rust crates from crates.io
- packages: Multi-repo (npm, rubygems, haskell/hoogle, hex, packagist, metacpan, pub.dev, pkg.go.dev, docker hub, alpine, etc.)
- it: IT/tech resources (includes GitHub, Docker Hub, crates.io)
- repos: Code repositories
- code: Code search
- scientific publications: Academic papers
- news, videos, images, books, etc.
See package-engine-status.md for comprehensive package search testing results.
运行以下命令查看所有分类:
bash
curl -s "http://localhost:8888/config" | jq '.categories'主要分类包括:
- general:通用网页搜索(默认)
- cargo:来自crates.io的Rust软件包
- 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等
查看package-engine-status.md获取完整的软件包搜索测试结果。
JSON Response Structure
JSON响应结构
json
{
"query": "search term",
"number_of_results": 0,
"results": [
{
"url": "https://example.com",
"title": "Result Title",
"content": "Snippet of content...",
"publishedDate": "2025-01-01T00:00:00",
"engine": "duckduckgo",
"engines": ["duckduckgo", "startpage"],
"score": 3.0,
"category": "general"
}
],
"answers": [], // Direct answers/infoboxes
"suggestions": [], // Search suggestions
"corrections": [], // Query corrections
"infoboxes": [], // Knowledge panels
"unresponsive_engines": []
}json
{
"query": "search term",
"number_of_results": 0,
"results": [
{
"url": "https://example.com",
"title": "Result Title",
"content": "Snippet of content...",
"publishedDate": "2025-01-01T00:00:00",
"engine": "duckduckgo",
"engines": ["duckduckgo", "startpage"],
"score": 3.0,
"category": "general"
}
],
"answers": [], // 直接答案/信息框
"suggestions": [], // 搜索建议
"corrections": [], // 查询修正
"infoboxes": [], // 知识面板
"unresponsive_engines": []
}Common Usage Patterns
常见使用模式
1. Package Repository Searches
1. 软件包仓库搜索
Cargo/Rust crates:
bash
curl -s "http://localhost:8888/search?q=tokio&format=json&categories=cargo" | \
jq '.results[] | {title, url, content}'npm packages:
bash
curl -s "http://localhost:8888/search?q=express&format=json&categories=packages" | \
jq '.results[] | select(.engines[] == "npm") | {title, url, content}'PyPI packages (workaround - see below):
bash
undefinedCargo/Rust软件包:
bash
curl -s "http://localhost:8888/search?q=tokio&format=json&categories=cargo" | \
jq '.results[] | {title, url, content}'npm软件包:
bash
curl -s "http://localhost:8888/search?q=express&format=json&categories=packages" | \
jq '.results[] | select(.engines[] == "npm") | {title, url, content}'PyPI软件包(替代方案 - 见下文):
bash
undefinedPyPI engine is enabled but not returning results in current SearXNG config
PyPI引擎已启用,但当前SearXNG配置下无法返回结果
Use direct API or qypi CLI instead (see PyPI Workaround section)
请使用直接API或qypi CLI工具替代(查看PyPI替代方案部分)
undefinedundefined2. Web Search with Filtering
2. 带过滤的网页搜索
IT/Tech search:
bash
curl -s "http://localhost:8888/search?q=rust+async&format=json&categories=it" | \
jq '.results[0:5] | .[] | {title, url, engines}'GitHub repositories:
bash
curl -s "http://localhost:8888/search?q=machine+learning&format=json&categories=repos" | \
jq '.results[] | select(.engines[] == "github") | {title, url}'IT/技术搜索:
bash
curl -s "http://localhost:8888/search?q=rust+async&format=json&categories=it" | \
jq '.results[0:5] | .[] | {title, url, engines}'GitHub仓库:
bash
curl -s "http://localhost:8888/search?q=machine+learning&format=json&categories=repos" | \
jq '.results[] | select(.engines[] == "github") | {title, url}'3. Extracting Specific Information
3. 提取特定信息
Get top 3 results:
bash
curl -s "http://localhost:8888/search?q=rust+ownership&format=json" | \
jq '.results[0:3] | .[] | {title, url, content}'Check which engines returned results:
bash
curl -s "http://localhost:8888/search?q=python&format=json" | \
jq '.results[0].engines'Get answer boxes/infoboxes:
bash
curl -s "http://localhost:8888/search?q=rust+language&format=json" | \
jq '.infoboxes, .answers'获取前3条结果:
bash
curl -s "http://localhost:8888/search?q=rust+ownership&format=json" | \
jq '.results[0:3] | .[] | {title, url, content}'查看哪些引擎返回了结果:
bash
curl -s "http://localhost:8888/search?q=python&format=json" | \
jq '.results[0].engines'获取答案框/知识面板:
bash
curl -s "http://localhost:8888/search?q=rust+language&format=json" | \
jq '.infoboxes, .answers'PyPI Workaround
PyPI替代方案
Since PyPI is not returning results in SearXNG (despite being enabled), use these alternatives:
由于SearXNG中PyPI无法返回结果(尽管已启用),请使用以下替代方案:
Option 1: Direct PyPI JSON API
方案1:直接调用PyPI JSON API
bash
undefinedbash
undefinedSearch (limited to simple package name matching)
搜索(仅支持简单软件包名称匹配)
curl -s "https://pypi.org/pypi/<package>/json" | jq '.info | {name, summary, version, home_page}'
curl -s "https://pypi.org/pypi/<package>/json" | jq '.info | {name, summary, version, home_page}'
Example:
示例:
curl -s "https://pypi.org/pypi/requests/json" | jq '.info.summary'
undefinedcurl -s "https://pypi.org/pypi/requests/json" | jq '.info.summary'
undefinedOption 2: qypi CLI tool
方案2:qypi CLI工具
bash
undefinedbash
undefinedInstall
安装
uvx qypi search pandas --json
uvx qypi search pandas --json
Get package info
获取软件包信息
uvx qypi info requests --json
uvx qypi info requests --json
List releases
列出版本
uvx qypi releases flask --json
See `references/pypi-direct-search.md` for more details.uvx qypi releases flask --json
更多详情请查看`references/pypi-direct-search.md`。Integration with Nushell
与Nushell集成
Create a helper function:
nu
def searx [
query: string,
--category (-c): string = "general",
--limit (-l): int = 10
] {
http get $"http://localhost:8888/search?q=($query | url encode)&format=json&categories=($category)"
| get results
| first $limit
| select title url content engines
}Usage:
nu
searx "tokio async" --category cargo --limit 5
searx "flask tutorial" --category general创建辅助函数:
nu
def searx [
query: string,
--category (-c): string = "general",
--limit (-l): int = 10
] {
http get $"http://localhost:8888/search?q=($query | url encode)&format=json&categories=($category)"
| get results
| first $limit
| select title url content engines
}使用示例:
nu
searx "tokio async" --category cargo --limit 5
searx "flask tutorial" --category generalDebugging
调试
Check SearXNG config:
bash
curl -s "http://localhost:8888/config" | jq '.engines[] | select(.name == "pypi")'Check for engine errors:
bash
curl -s "http://localhost:8888/search?q=test&format=json" | jq '.unresponsive_engines'Test specific engine:
bash
curl -s "http://localhost:8888/search?q=flask&format=json&engines=pypi" | jq .检查SearXNG配置:
bash
curl -s "http://localhost:8888/config" | jq '.engines[] | select(.name == "pypi")'检查引擎错误:
bash
curl -s "http://localhost:8888/search?q=test&format=json" | jq '.unresponsive_engines'测试特定引擎:
bash
curl -s "http://localhost:8888/search?q=flask&format=json&engines=pypi" | jq .Known Issues
已知问题
- PyPI engine enabled but not working: Use direct API or qypi CLI as workaround
- Cargo category sometimes returns empty: Try or
categories=packageswhich also include crates.iocategories=it - Rate limiting: SearXNG may rate-limit if too many requests in quick succession
- PyPI引擎已启用但无法工作:使用直接API或qypi CLI作为替代方案
- Cargo分类有时返回空结果:尝试使用或
categories=packages,这些分类也包含crates.io的内容categories=it - 速率限制:如果短时间内发送过多请求,SearXNG可能会触发速率限制
Configuration
配置
Using the Helper Script (Recommended)
使用辅助脚本(推荐)
The script creates a minimal configuration automatically:
start-searxngbash
start-searxng --helpDefault config includes:
- (inherits all SearXNG defaults)
use_default_settings: true - JSON format enabled
- Rate limiting disabled (for local use)
- Secret key (change in production!)
start-searxngbash
start-searxng --help默认配置包括:
- (继承所有SearXNG默认设置)
use_default_settings: true - 启用JSON格式
- 禁用速率限制(适用于本地使用)
- 密钥(生产环境请修改!)
Using Your Own Config
使用自定义配置
bash
start-searxng --config /path/to/your/config/dirYour config directory should contain .
settings.ymlbash
start-searxng --config /path/to/your/config/dir你的配置目录应包含文件。
settings.ymlManual Container Start
手动启动容器
bash
undefinedbash
undefinedCreate config
创建配置
mkdir -p /tmp/searxng-config
cat > /tmp/searxng-config/settings.yml << 'EOF'
use_default_settings: true
search:
formats:
- html
- json
server:
secret_key: "change-me-in-production"
bind_address: "0.0.0.0"
port: 8080
EOF
mkdir -p /tmp/searxng-config
cat > /tmp/searxng-config/settings.yml << 'EOF'
use_default_settings: true
search:
formats:
- html
- json
server:
secret_key: "change-me-in-production"
bind_address: "0.0.0.0"
port: 8080
EOF
Start with podman
使用podman启动
podman run --rm -d --name searxng
-p 8888:8080
-v /tmp/searxng-config:/etc/searxng:Z
docker.io/searxng/searxng:latest
-p 8888:8080
-v /tmp/searxng-config:/etc/searxng:Z
docker.io/searxng/searxng:latest
podman run --rm -d --name searxng
-p 8888:8080
-v /tmp/searxng-config:/etc/searxng:Z
docker.io/searxng/searxng:latest
-p 8888:8080
-v /tmp/searxng-config:/etc/searxng:Z
docker.io/searxng/searxng:latest
Or with docker
或使用docker启动
docker run --rm -d --name searxng
-p 8888:8080
-v /tmp/searxng-config:/etc/searxng
docker.io/searxng/searxng:latest
-p 8888:8080
-v /tmp/searxng-config:/etc/searxng
docker.io/searxng/searxng:latest
undefineddocker run --rm -d --name searxng
-p 8888:8080
-v /tmp/searxng-config:/etc/searxng
docker.io/searxng/searxng:latest
-p 8888:8080
-v /tmp/searxng-config:/etc/searxng
docker.io/searxng/searxng:latest
undefinedCheck Logs
查看日志
bash
podman logs searxng # or: docker logs searxngbash
podman logs searxng # 或:docker logs searxngAdvanced Config
高级配置
See SearXNG Settings Documentation for all options.
Minimal config to add JSON output to defaults:
yaml
use_default_settings: true
search:
formats:
- html
- json所有配置选项请查看SearXNG设置文档。
在默认设置基础上添加JSON输出的最小配置:
yaml
use_default_settings: true
search:
formats:
- html
- json