Keyword Beats Vector on Chinese Tech Notes: 53% vs 40% in a 24-Config Chunking and Recall Test
Vector stores are not the default win in retrieval: on a corpus dense with domain-specific proper nouns, a simple keyword matcher can outperform full embeddings by 13 points, and hybrid recall adds another 20. Anyone building RAG on code-heavy or jargon-heavy Chinese material should sweep chunking and recall combinations before committing to a vector index, and the two-pitfall list alone could save hours of debugging on Java deployments.
A systematic offline test on 31 Chinese technical notes and 30 single-answer questions ran 24 configurations (4 chunking strategies × 3 recall methods) with a fixed 1,200-character context budget. Pure keyword retrieval beat pure vector retrieval overall (53% vs 40%), but a hybrid mix (0.6 keyword / 0.4 vector) topped the table at 73%. The gap was most visible on literal and structure questions, where keywords handled proper nouns and code blocks cleanly; vector only won on paraphrased questions. Cross-block questions exposed the weakest spot, with all methods scoring at or below 25%.
On a corpus dense with technical terms like 幂等键 and defaultToolCallbacks, keyword matching is not a fallback; it is often the most reliable exact-match mechanism, while dense vectors smudge nearby concepts into the same semantic neighborhood.
The finding that sentence-level chunking can still hit 67% recall with a hybrid method, despite destroying table structure, suggests that answer fragments often live in plain text lines, but the destroyed structure still hurts the downstream model's comprehension in ways a recall metric cannot show.
Cross-block questions were the worst scoring category across every method (pure keyword 0%, hybrid 25%), which points to a real limitation of single-pass top-k retrieval when an answer has to be assembled from multiple blocks.
The parameter sweeps show that retrieval performance is not a knife-edge: the hybrid weight plateau between 0.4/0.6 and 0.6/0.4, and the minScore threshold does nothing until it passes 0.4, so naive grid searches on these knobs buy little.