https://github.com/mukller/metasearch
Search aggregator: one query, multiple search engines
https://github.com/mukller/metasearch
aggregator privacy python search self-hosted web
Last synced: 6 days ago
JSON representation
Search aggregator: one query, multiple search engines
- Host: GitHub
- URL: https://github.com/mukller/metasearch
- Owner: Mukller
- License: mit
- Created: 2026-06-23T13:10:51.000Z (23 days ago)
- Default Branch: main
- Last Pushed: 2026-06-23T14:04:00.000Z (23 days ago)
- Last Synced: 2026-06-23T15:15:14.224Z (23 days ago)
- Topics: aggregator, privacy, python, search, self-hosted, web
- Language: Python
- Size: 17.6 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
[English](README_EN.md) • **Русский**
# metasearch
Self-hosted поисковый агрегатор. Запрашивает несколько поисковиков параллельно,
объединяет и дедуплицирует результаты. Без JS-трекеров, без телеметрии.
## Запуск
```bash
pip install metasearch
metasearch
# → http://localhost:8080
metasearch --port 9090 --host 0.0.0.0
```
## Что умеет
- Агрегирует DuckDuckGo, Brave Search, Bing
- Параллельные запросы (asyncio + httpx)
- Дедупликация по URL
- Ранжирование по частоте упоминания
- Простой веб-интерфейс
- JSON API (`/api/search?q=...`)
## API
```bash
curl "http://localhost:8080/api/search?q=python+asyncio&engines=ddg,brave"
```
```json
{
"query": "python asyncio",
"results": [
{ "title": "...", "url": "...", "snippet": "...", "score": 3, "sources": ["ddg", "brave"] }
],
"total": 15,
"took_ms": 420
}
```
## Настройка
```toml
# config.toml
port = 8080
timeout = 5.0
max_results_per_engine = 10
engines = ["ddg", "brave", "bing"]
```