Add SearchXNG and SethSearch project context docs
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
# Architecture
|
||||
|
||||
## Request flow
|
||||
|
||||
1. User query enters SearXNG (`search.sethpc.xyz`).
|
||||
2. SearXNG calls `json_engine` endpoint at SethSearch API.
|
||||
3. SethSearch queries local SQLite FTS5 index and returns normalized results.
|
||||
4. SearXNG merges SethSearch with other engines and renders the result page.
|
||||
|
||||
## Data plane
|
||||
|
||||
- Index DB: `/opt/sethsearch/articles.db`
|
||||
- Tables:
|
||||
- `documents` (canonical indexed records)
|
||||
- `documents_fts` (FTS5 virtual table)
|
||||
- Source-level scoring and matching occur in SethSearch.
|
||||
|
||||
## Source adapters
|
||||
|
||||
- Caddy snapshot parser: domain discovery and tag generation.
|
||||
- Gitea adapter: public repo metadata via REST.
|
||||
- Wiki.js adapter: public crawl with fallback records.
|
||||
- WordPress adapter: public posts/pages via `/wp-json/wp/v2/...`.
|
||||
- Emby adapter: media index using server API token and deep links.
|
||||
- FreshRSS adapter: GReader API article ingest.
|
||||
|
||||
## Reliability model
|
||||
|
||||
- SethSearch syncs sources independently.
|
||||
- If one source fails, others continue and commit.
|
||||
- Service runs under systemd with restart policy.
|
||||
Reference in New Issue
Block a user