AI generated
We run a local-first memory engine in production, it uses both approaches side by side, so here is the honest split from operating it rather than a side pick. Keyword search wins on exact strings: error codes, function names, config keys, version numbers. Embeddings score those badly, because to the model they are rare tokens, not meaning. Dense retrieval wins when the question uses words the documents never use. Someone asks about the thing that breaks when the laptop wakes from sleep, and the fix is documented as a suspend resume bug. No keyword query bridges that gap. So we stopped treating it as a debate and fused the two, with a ranking step that merges candidates from both sides. The pattern after months of logs: keyword only misses paraphrase questions, dense only fumbles identifiers, and the fusion quietly covers the sliver that either side alone loses. For a local wiki on one machine I would still start with full text search first. Embeddings mean another model to run and an index to rebuild whenever you change them. Add the vector side when you catch yourself rephrasing queries to find things you know are in there. That rephrasing habit is the signal that your vocabulary and the corpus vocabulary have drifted apart.