# FTS5 volledige-tekst zoekopdracht SUMMARY: Hoe Synapse SQLite FTS5 gebruikt voor sub-milliseconde volledige-tekst memory-zoekopdrachten. FTS5 volledige-tekst zoekopdracht Synapse gebruikt FTS5 (Full-Text Search 5) voor snelle, flexibele memory-zoekopdrachten. Deze pagina legt uit hoe het werkt en hoe u het effectief kunt gebruiken. Wat is FTS5? FTS5 is een SQLite-extensie (ook beschikbaar in PostgreSQL via extensies) die volledige-tekst zoekmogelijkheden biedt. Het: - Indexeert tekstinhoud voor snelle trefwoordzoekopdrachten - Ondersteunt booleaanse operatoren (AND, OR, NOT) - Ondersteunt overeenkomsten met zinnen via aanhalingstekens - Ondersteunt prefix-overeenkomsten met - Rangschikt resultaten op relevantie Synapse gebruikt FTS5 om alle memory-inhoud te indexeren, waardoor sub-milliseconde zoekopdrachten mogelijk zijn over duizenden herinneringen. Hoe Synapse FTS5 gebruikt Wanneer u uitvoert: 1. Memory-inhoud wordt opgeslagen in de -tabel 2. Inhoud wordt ook ingevoegd in de FTS5 virtuele tabel 3. FTS5 tokenizeert en indexeert de inhoud automatisch Wanneer u uitvoert: 1. Synapse parseert de query met FTS5-syntaxis 2. Voert een uit tegen de FTS5-index 3. Filtert op (tenant-isolatie) 4. Retourneert gerangschikte resultaten Query-syntaxis Eenvoudige trefwoordzoekopdracht [CODE BLOCK] Retourneert herinneringen die "docker" bevatten. Meerdere trefwoorden (impliciete AND) [CODE BLOCK] Retourneert herinneringen die ZOWEL "docker" ALS "swarm" bevatten. Zin-overeenkomst [CODE BLOCK] Retourneert herinneringen die de exacte zin "docker swarm" bevatten. Prefix-overeenkomst [CODE BLOCK] Retourneert herinneringen die woorden bevatten die beginnen met "docker" (bijv. "dockers", "dockerfile", "dockerize"). Booleaans OR [CODE BLOCK] Retourneert herinneringen die "docker" OF "kubernetes" bevatten. Booleaans NOT [CODE BLOCK] Retourneert herinneringen die "docker" bevatten maar NIET "swarm". Groepering [CODE BLOCK] Retourneert herinneringen die "docker" of "kubernetes" bevatten, maar niet "test". Praktische voorbeelden Vind herinneringen over een project [CODE BLOCK] Vind exacte zin [CODE BLOCK] Sluit test-herinneringen uit [CODE BLOCK] Vind op technologie [CODE BLOCK] Rangschikking FTS5 rangschikt resultaten op relevantie met behulp van het BM25-algoritme. Factoren: - Termfrequentie (hoe vaak de term voorkomt) - Inverse documentfrequentie (zeldzame termen ranken hoger) - Documentlengte (kortere docs met de term ranken hoger) - Kolomgewicht (title > content) Resultaten worden geretourneerd in rangschikkingsvolgorde (meest relevant eerst). Prestaties | Bewerking | Latentie | |-----------|----------| | 100 herinneringen doorzoeken | < 5ms | | 1.000 herinneringen doorzoeken | < 10ms | | 10.000 herinneringen doorzoeken | < 25ms | | 100.000 herinneringen doorzoeken | < 100ms | FTS5 is sterk geoptimaliseerd voor lees-intensieve workloads. Beperkingen Stamvorming FTS5 doet standaard geen stamvorming. "running" en "run" zijn verschillende termen. Tijdelijke oplossing: Gebruik prefix-overeenkomst: Typefout-tolerantie FTS5 ondersteunt geen fuzzy matching. Een typefout levert geen resultaten op. Tijdelijke oplossing: Gebruik semantisch zoeken () voor conceptuele overeenkomsten. Stopwoorden Veelvoorkomende woorden (the, a, an, is) worden geïndexeerd maar zijn mogelijk niet nuttig voor zoekopdrachten. FTS5 handelt dit automatisch af. FTS5 versus semantisch zoeken | Aspect | FTS5 | Semantisch zoeken | |--------|------|-------------------| | Snelheid | Sub-milliseconde | 50-100ms | | Matching | Exacte trefwoorden | Conceptueel | | Typefout-tolerantie | Geen | Enigszins | | Stamvorming | Geen | Impliciet | | Vereist embeddings | Nee | Ja | | Geschikt voor | Specifieke termen | Concepten | Gebruik FTS5 als u de trefwoorden kent. Gebruik semantisch zoeken als u "herinneringen over X" wilt waarbij X anders wordt omschreven. Best practices > [!TIP] > - Gebruik specifieke termen — "docker swarm" is beter dan "container orchestration" > - Gebruik aanhalingstekens voor zinnen — garandeert zinsovereenkomst > - Gebruik prefix voor variaties — vangt "deploy", "deployment", "deploying" > - Sluit ruis uit — filtert test-herinneringen weg > - Combineer met tags — verfijnt resultaten Volgende stappen - Semantisch zoeken - Memory API - Memory-best-practices