介绍
# SearXNG Search Skill
使用您自托管的 SearXNG 实例搜索网络。这是一款尊重隐私的元搜索引擎,聚合了来自 Google、DuckDuckGo、Brave、Startpage 和 70 多个其他搜索引擎的结果。
## 前置条件
在本地或服务器上运行 SearXNG。快速 Docker 设置:
```bash mkdir -p ~/Projects/searxng/searxng cd ~/Projects/searxng
# Create docker-compose.yml cat > docker-compose.yml << 'EOF' services: searxng: image: searxng/searxng:latest container_name: searxng ports: - "8080:8080" volumes: - ./searxng:/etc/searxng:rw environment: - SEARXNG_BASE_URL=http://localhost:8080/ restart: unless-stopped EOF
# Create settings.yml with JSON API enabled cat > searxng/settings.yml << 'EOF' use_default_settings: true server: secret_key: "change-me-to-random-string" bind_address: "0.0.0.0" port: 8080 search: safe_search: 0 autocomplete: "google" default_lang: "en" formats: - html - json EOF
# Start SearXNG docker compose up -d ```
## 配置
设置 SearXNG URL(默认为 http://localhost:8080): ```bash export SEARXNG_URL="http://localhost:8080" ```
## 使用示例
### 基本搜索 ```bash curl "http://localhost:8080/search?q=your+query&format=json" | jq '.results[:5]' ```
### 带类别的搜索 ```bash # General web search curl "http://localhost:8080/search?q=query&categories=general&format=json"
# Images curl "http://localhost:8080/search?q=query&categories=images&format=json"
# News curl "http://localhost:8080/search?q=query&categories=news&format=json"
# Videos curl "http://localhost:8080/search?q=query&categories=videos&format=json"
# IT/Tech documentation curl "http://localhost:8080/search?q=query&categories=it&format=json"
# Science/Academic curl "http://localhost:8080/search?q=query&categories=science&format=json" ```
### 带语言/地区的搜索 ```bash curl "http://localhost:8080/search?q=query&language=en-US&format=json" curl "http://localhost:8080/search?q=query&language=de-DE&format=json" ```
### 分页结果 ```bash # Page 2 (results 11-20) curl "http://localhost:8080/search?q=query&pageno=2&format=json" ```
## 响应格式
每个结果包括: - `title` - 结果标题 - `url` - 结果的链接 - `content` - 摘要/描述 - `engines` - 返回此结果的搜索引擎数组 - `score` - 相关性评分(越高越好) - `category` - 结果类别
## Shell 函数
将其添加到您的 `.zshrc` 或 `.bashrc` 中:
```bash searxng() { local query="$*" local url="${SEARXNG_URL:-http://localhost:8080}" curl -s "${url}/search?q=$(echo "$query" | sed 's/ /+/g')&format=json" | \ jq -r '.results[:10][] | "[\(.score | floor)] \(.title)\n \(.url)\n \(.content // "No description")\n"' } ```
用法:`searxng how to make sourdough bread`
## Docker 管理
```bash # Start cd ~/Projects/searxng && docker compose up -d
# Stop docker compose down
# View logs docker compose logs -f searxng
# Restart docker compose restart ```
## 故障排除
**容器无法启动:** ```bash docker compose logs searxng ```
**JSON 格式不起作用:** 确保您的 settings.yml 中包含 `formats: [html, json]`
**无结果:** 某些引擎可能会受到速率限制。请检查日志以查找错误。
## 为什么选择 SearXNG?
- **隐私**:无跟踪、无广告、无数据收集 - **聚合**:结合 70 多个搜索引擎的结果 - **自托管**:您的数据保留在您的机器上 - **API**:用于自动化的 JSON 输出 - **免费**:无 API 密钥或速率限制