Skip to content

4.3.0

Latest

Choose a tag to compare

@github-actions github-actions released this 30 Jul 11:52

Better matches, especially for longer notes

Related-notes suggestions are computed from bigrams — adjacent word pairs — as well as individual words. Those bigrams were being built from 10-word fragments rather than from the note as a whole, which had three effects:

  • Every tenth word pair was missing. A pair straddling a fragment boundary was never recorded, so roughly 10% of the phrase information in every note was silently dropped.
  • Long notes were over-weighted on phrases. A limit meant to cap each note at 200 word pairs could never take effect, so a 1,000-word note contributed around 900 — drowning out its individual words and skewing what it matched against.
  • A lower-detail mode for very long notes never ran at all, along with a separate limit for CJK text.

Notes are now analyzed as a whole before being indexed, so phrase information is complete and the limits apply as intended. Expect suggestions to shift, generally toward better matches on notes longer than a few hundred words.

Faster indexing

Because the phrase limit now works, there is less to index on long notes. Indexing 2,000-word notes is roughly 2.2x faster than in 4.2.0 (measured over 200 documents: 3,449ms to 1,551ms). Shorter notes are modestly faster too.

Your index will rebuild once

This release changes what is stored in the index, so the existing cache cannot be reused and is rebuilt automatically the first time you open Obsidian after updating. That happens in the background and only once. Thanks to the indexing work in 4.2.0 and this release, rebuilding is far quicker than it used to be.

Internal

Regression tests now assert that the batch size used for yielding cannot influence what gets indexed — the defect above existed because a performance mechanism was quietly determining scoring. Also covered: that indexing actually goes through the whole-document path rather than a per-fragment one, that word-pair limits are reachable, and that a stale index version is rejected rather than mixed with new data.

Requires Obsidian 0.15.0 or later.