add stuff

This commit is contained in:
2026-10-09 16:42:15 +02:00
parent 02bd184043
commit 19730e1711
13 changed files with 3448 additions and 995 deletions
+48 -6
View File
@@ -16,6 +16,21 @@ JONASSEARCH_WORKERS=4
# Mindestabstand zwischen Requests zur gleichen Domain
JONASSEARCH_DELAY=3.0
# Host-Scheduling: blockierte/rate-limitierte Domains werden automatisch
# übersprungen und später erneut versucht (mit exponentiellem Backoff).
# Kandidaten, die pro Claim-Runde in der Queue geprüft werden
#JONASSEARCH_CLAIM_BATCH=25
# Maximale Anzahl geprüfter Kandidaten pro Claim
#JONASSEARCH_CLAIM_SCAN_LIMIT=200
# Maximale Versuche pro URL (transiente Fehler werden erneut eingereiht),
# bevor der Eintrag endgültig failed wird
#JONASSEARCH_MAX_ATTEMPTS=5
# Wartezeiten über dieser Grenze (Sekunden) werden nicht inline geschlafen:
# das Item wird zurückgestellt und eine andere Domain gecrawlt
#JONASSEARCH_MAX_INLINE_WAIT=10
# Obergrenze für die Wartezeit, wenn gerade kein Host crawlbar ist
#JONASSEARCH_MAX_IDLE_SLEEP=30
# robots.txt Cache
JONASSEARCH_ROBOTS_CACHE_SECONDS=86400
@@ -32,7 +47,7 @@ JONASSEARCH_USER_AGENT=JonasSearchBot/0.1 (+https://jonassearch.local/bot)
# Version dieser Crawler-Codebasis (NICHT die Deployment-Generation).
# Muss bei jedem verteilten Crawler-Änderung erhöht werden.
JONASSEARCH_CRAWLER_VERSION=1
JONASSEARCH_CRAWLER_VERSION=3
# Wie oft jeder Crawler außerhalb der Transaktionen nach einer neuen
# Deployment-Generation sieht (Sekunden). Der Check setzt nur ein
@@ -55,16 +70,43 @@ JONASSEARCH_UPDATE_CHECK_SECONDS=30
#JONASSEARCH_LAUNCHER_RESTART_DELAY=2
# ============================================================
# Suchmaschine (search/)
# Suchmaschine (search/) – Port 8083
# ============================================================
# PostgreSQL-Textsuch-Konfiguration (Stemming/Stopwörter)
JONASSEARCH_TS_CONFIG=german
# PostgreSQL-Textsuch-Konfiguration. MUSS zur Konfiguration passen,
# mit der der DB-Trigger den Suchvektor (pages.search_vector) baut –
# laut DB-Doku: 'simple'. Ansonsten finden die Queries nichts.
JONASSEARCH_TS_CONFIG=simple
# tsvector-Spalte der Tabelle `pages` erzwingen (optional,
# wird automatisch erkannt)
#JONASSEARCH_VECTOR_COLUMN=search_vector
# HTTP-API (search/api.py)
# HTTP-API + Weboberfläche (search/api.py)
JONASSEARCH_API_HOST=0.0.0.0
JONASSEARCH_API_PORT=8082
JONASSEARCH_API_PORT=8083
# Ranking: ts_rank_cd-Gewichte (Titel=A, Überschriften=B, Inhalt=C)
#JONASSEARCH_RANK_WEIGHTS=A=1.0,B=0.6,C=0.3,D=0.1
# Ranking: Aktualitätsbonus (Faktor auf den Text-Rang)
#JONASSEARCH_FRESHNESS_WEIGHT=0.25
#JONASSEARCH_FRESHNESS_HALF_LIFE_DAYS=180
# Ranking: ts_rank_cd-Normalisierung (Bitmaske). 8 = Rang /
# (1 + log Dokumentlänge) – riesige Seiten dominieren sonst automatisch.
# 0 = keine Normalisierung.
#JONASSEARCH_RANK_NORMALIZATION=8
# Fallback bei sehr häufigen Begriffen: volles Ranking wird bei
# Zeitüberschreitung auf die ersten N Kandidaten (Indexreihenfolge)
# begrenzt, damit die Antwort immer kommt.
#JONASSEARCH_MAX_RANK_CANDIDATES=5000
# Schutz der großen DB: Statement-Timeouts (ms)
#JONASSEARCH_STATEMENT_TIMEOUT_MS=10000
#JONASSEARCH_COUNT_TIMEOUT_MS=4000
# Paginierung
#JONASSEARCH_RESULTS_PER_PAGE=10
#JONASSEARCH_MAX_RESULTS_PER_PAGE=50