vestige/crates
Jan De Landtsheer 5e411833f5
fix(fts): match multi-word queries as implicit-AND, not adjacent phrase
sanitize_fts5_query wraps queries in quotes, producing FTS5 phrase search
where the words must be adjacent. So "quantum physics" against a doc
containing "quantum entanglement superposition physics" returned no FTS
hit; semantic search hid the issue whenever embeddings were enabled.

Add sanitize_fts5_terms that splits into space-separated terms (FTS5
implicit AND, any order, any position), and use it in:

- keyword_search_with_scores (hybrid-search FTS leg) so multi-word
  queries return docs containing all words regardless of adjacency
- a new SqliteMemoryStore::search_terms inherent method for callers
  that want individual-term matching without the full hybrid pipeline

sanitize_fts5_query stays in place; KeywordSearcher still uses it
(phrase semantics preserved where they were wanted).
2026-04-22 10:52:07 +02:00
..
vestige-core fix(fts): match multi-word queries as implicit-AND, not adjacent phrase 2026-04-22 10:52:07 +02:00
vestige-mcp fix(timeline): push node_type and tags filters into SQL WHERE 2026-04-20 15:00:20 -05:00