Embeddings are great at meaning and surprisingly bad at exact strings. Ask about “error E-417” and an embedding search happily returns a page about errors in general. It knows the topic. It doesn't care which code.
The old fix still works: keyword search. The standard scoring method is BM25. It scores a chunk higher when it contains the query's words, gives rare words more weight than common ones (a match on “E-417” counts for far more than a match on “the”), gives less and less credit for each repeat of a word, and evens out long and short chunks.
Each method fails where the other shines: