Search: revisit semantic ranking once the corpus outgrows the in-memory pass #163
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Issue #159 asked for a semantically aware search over an embedding model with the database made vector-like. What shipped in
claude/issue-159is lexical: the same word looked for in five places at once (title, tags, the people on the card, the board and column, description) with fuzzy matching, which covers most of "find it by its context" for short Kanban text. The embedding half was deliberately left out and the reasoning is written down indocs/search.md— this issue is the tracker for the decision, not a restatement of the feature.Why it was not built now
pgvectorto index. A vector column would have to be either plaintext beside a ciphertext column — an embedding is close enough to the content that this quietly undoes the encryption for the one table anybody would attack — or encrypted, in which case it can only be read by decrypting all of it, which is exactly the in-memory passSearchServicealready does, plus a model in the image.What would change the answer
Total cards across all boards.
SearchServicereads and decrypts every card the viewer can see on the first keystroke of a search session; at a few hundred that is a handful of milliseconds, at tens of thousands it is not. The point where that stops being acceptable is also the point where the honest fix is a search index process beside the app rather than a column onCards— and that is the right moment to put an embedding in it, because it can hold plaintext under its own access boundary instead of next to the ciphertext.Concretely, before reaching for a model: measure
SearchService.SnapshotAsyncagainst a realistically sized deployment (it is one query plus oneSearchDocumentper card). If the number is small, this issue stays closed-by-default.Filed by Claude while working on #159 (run).