Baue den Index als SQLite mit FTS5 und sqlite-vec, dazu die Suche
Entscheidung Andreas 2026-09-04 (spine/core#8): kein Datenbankdienst. Der Index ist eine abgeleitete Sicht auf die Markdown-Ablage in einer Datei im Volume, jederzeit neu baubar. image/km/index.py zerlegt die Dateien in Chunks (Chunking aus info/ai/scripts/index_docs.py übernommen), hält Volltext in FTS5 und Vektoren aus bge-m3 in sqlite-vec, inkrementell über SHA-256 je Datei. image/km/search.py sucht Volltext führend, Vektor ergänzend, mit Filtern vor dem Ranking (0 Treffer statt gesperrt). Ingest: Kommentare bei der Erstbefüllung repo-weit statt je Vorgang — die erste Fassung hing bei live/live nach 371 Vorgängen; jetzt 2175 in zwei Minuten. Gemessen: Volltext über 61.000 Chunks in 3 s, Vektoren 0,31 s je Chunk auf der CPU-Box. Kein Bytecode mehr im Repo. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
+4
-3
@@ -3,9 +3,10 @@
|
||||
Hier entsteht `git.42i.org/spine/km`: die API, die Ablage, der MCP-Endpunkt und
|
||||
die prüfende Schreibfunktion.
|
||||
|
||||
**Erster Baustein vorhanden:** `km/ingest_gitea.py` holt Tickets und Kommentare
|
||||
aus Gitea in die Ablage (spine/core#13, Doku in
|
||||
[../docs/ingest-gitea.md](../docs/ingest-gitea.md)). Der Rest steht in
|
||||
**Vorhanden:** `km/ingest_gitea.py` holt Tickets und Kommentare aus Gitea in
|
||||
die Ablage ([../docs/ingest-gitea.md](../docs/ingest-gitea.md)); `km/index.py`
|
||||
und `km/search.py` bauen den SQLite-Index (FTS5 + sqlite-vec) und suchen
|
||||
darüber ([../docs/index-suche.md](../docs/index-suche.md)). Der Rest steht in
|
||||
[../docs/konzept.md](../docs/konzept.md).
|
||||
Die Reihenfolge, in der es sinnvoll wächst:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user