Finding Answers Without Pretending to Know More

For claude-obsidian, a useful answer begins with finding the right evidence without quietly changing the vault or overstating what a match proves. This chapter examines the read path: how a bounded query is turned into candidate pages, how local BM25 search and optional semantic reranking fit together, and how stale or untrusted results are rejected. The practical outcome is a clear distinction between retrieval as navigation and evidence as something a reader must still inspect.

Retrieval narrows the reading task

A query and a save request are different kinds of action. A query asks what the selected vault already contains. It should not create a note, update an index, refresh a cache, or record an automatic transcript. If the answer is worth preserving, saving it is a separate, explicitly scoped operation. That separation matters because reading a claim and committing a new interpretation of it have different consequences for canonical knowledge.

The query workflow can be quick, standard, or deep. A quick lookup uses the vault’s orientation pages and proceeds only when they point to adequate evidence. A standard lookup retrieves candidates, reads the most relevant pages, and follows links that could materially change the answer. A deep lookup broadens the candidate set, inspects competing pages and provenance, and states remaining gaps. The depth changes how broadly the reader searches; it does not change the rule that the vault remains untouched.

The optional retrieval extension is designed to reduce the amount of the vault a reader must inspect first. It derives runtime data from wiki pages rather than changing the pages themselves. A contextual-prefix step splits pages at paragraph boundaries and stores each raw chunk with a short page-level prefix. The prefix supplies local context so a passage can be interpreted in relation to its page, while the raw chunk remains available for reading. The resulting chunks are a search aid, not an additional source of facts.

A local BM25 index then ranks candidate chunks by lexical relevance. BM25 is useful when the query shares words or recognizable terms with the page, and it is deterministic and local. It can score the complete chunk even when a later embedding model has a smaller input context. The retrieval tool can select a candidate set with BM25 before an optional reranker reorders that set. This division makes the pipeline understandable: lexical matching proposes where to look; semantic ranking, when available, changes the order in which to look.

Lexical relevance is not the same as conceptual identity. A page may use a synonym the query does not contain, or a common word may produce a high score even when the surrounding argument is irrelevant. That is why the retriever does not stop at the first matching token. Contextual chunks preserve enough page framing to make the candidate intelligible, optional reranking can improve ordering when its prerequisites are present, and the final page read lets a person decide whether the passage answers the actual question. The system improves the search path without hiding the interpretive step.

Optional reranking uses an Ollama embedding model and cosine similarity.