All guides

Guide · 8 min read

How to find more files on a Mac without making search slower.

Fast search isn't about query time. It's about whether the file you meant is first in the list. Most Mac search fails at ranking, not speed.

Use distinct text signals instead of one fuzzy score

Exact filename, exact stem, prefix, word prefix, substring. Those are different kinds of matches. Lump them into one fuzzy score and the frequent-but-wrong file wins. Rank the text match first, then use recency and usage to break ties. Usage can't turn a bad match into an exact one.

Under the hoodHow it works
  • Rank exact filename, exact stem, prefix, word prefix, and substring as distinct signals.
  • Use recency and frequency only after the text-match class is established.
The ranking rule

Usage can break a tie. It cannot turn a weak text match into an exact one.

Remove predictable noise before scoring

Dependency folders, build output, and caches generate thousands of technically matching paths. Filter them before ranking, not after, or the junk eats the result budget before your file gets a turn. And keep your ignored folders visible in settings, so you always know what search is skipping.

Under the hoodHow it works
  • Apply default generated-tree exclusions before weak candidates consume the result budget.
  • Apply user ignored folders and extensions at the shared result boundary across discovery sources.

Cancel work that belongs to an old query

Typing as you search creates overlapping requests. Add a character and the previous request is already stale. The old results must be cancelled, not allowed to land late and replace the right ones. And don't over-debounce: a long fixed delay makes everything feel slow.

Under the hoodHow it works
  • Associate every asynchronous search with its query generation and cancel superseded work.
  • Before publishing results, verify that the generation still matches the visible query.

Start bounded, then broaden when quality is low

Start with a bounded first pass over standard locations. If ranking leaves too few useful results, broaden. Common files stay fast, uncommon files still have a path in.

Under the hoodHow it works
  • Use a bounded first-pass candidate set and broaden only after filtering and ranking reveal low result quality.
  • Keep pagination and broadening invisible while preserving stable ordering for items already shown.

Treat missing index data as unknown, not false

A provider can be offline, a new file may not be indexed yet, your scope may exclude it. Search should name the limit instead of declaring the file missing. If you're evaluating a search tool, test it cold: disconnected volumes, hidden files, nested paths, fast typing. A warm cache and one common document prove nothing.

Under the hoodHow it works
  • Distinguish excluded scope, unavailable provider data, and empty search results.
  • Test cold indexes, disconnected volumes, hidden files, nested paths, and rapid query changes.

Sources and scope

We wrote this from Axiom's current code, regression tests, and recorded product checks. If a behavior has only passed a source test, we do not describe it as proven on every Mac. There are no invented benchmark numbers here.