Prism 1.8 changes how search ranks results and how Ask builds its context. The sources are the same. Ask now gets eight different documents where it used to get several copies of one, search matches plurals and other word forms, and local file results show the passage that answers the question.
Duplicate results merged
Prism searches two ways at once. It queries live sources like BookStack and Obsidian directly, and it searches a local semantic index built from the same content. A single page could come back from both, sometimes as several chunks, and each copy took its own slot.
In Ask that mattered most. If eight sources went into the answer’s context, three of them might be the same wiki page. The answer was grounded, just in less material than it looked.
Prism now recognises the same BookStack page or Obsidian note whether it came from the live source or the index, and treats it as one document. The best-matching copy leads. The other copies’ distinct passages come along with it, within Ask’s context budget of about 6,000 characters. Every source’s own snippet is budgeted first, so extra passages never push a lower-ranked document out. Results link to the live page.
The local API’s /search endpoint follows the same rule. It returns one result per document, with an optional passages list holding the other copies’ text.
Semantic boost only for close matches
When a document matches both by keyword and by meaning, the semantic match strengthens its rank. That extra vote now only counts when the semantic match is close to the best one for that search. Loosely related pages no longer climb the list on a second, weak signal.
Matching word forms
Query words now match on their stem in both ranking layers. “migrations” finds “Migration” and “limits” finds “Limiting”. Exact matches rank as before.
Names with underscores, such as pg_ctl, now match results that contain them.
Passages from local files
Local file results used to show the first line that shared any word with the query, which was often a line that shared “the”. They now show the passage that best matches the question.
How it was checked
Before changing anything, I built an offline benchmark: 27 queries with annotated document relevance grades, run against both ranking layers. On that fixture, the fused ranking’s nDCG@5 moved from 0.900 to 0.938 across these changes. It measures document ranking, not the answers Ask writes. The largest single loss it found was duplicate copies of one page reaching Ask’s context.
A fifth proposed change moved the score by 0.001 and made the frontend ranking slightly worse, so it stayed out. The benchmark keeps it as a what-if.
1.8.1: Obsidian connection test
Obsidian’s Test connection now checks that your API key is accepted, not only that the server answers. A rotated or wrong key shows “HTTP 401 Unauthorized — check API key” in Settings instead of passing while searches fail.
Prism is a privacy-first command palette over your own notes, wikis and documents. Release notes are at prismapp.xyz/docs/releases.