Holmes Documentation
Holmes does three things against Craft’s searchindex table: it compares the index with the content it came from, it searches it and shows the working, and it puts it right.
Start here
If you have five minutes: install it, open Holmes → Audits, and run a quick audit with the defaults. It is read-only and finishes in seconds. The report will tell you more about the state of your index than this page can.
Installation
Two commands, no configuration required.
Reading the index
The Overview screen: size, composition and coverage.
Audits
Quick and deep, what each one costs, and how to read a report.
The checks
All ten, what each finds, and what fixes it.
Search console
Why an entry does or doesn’t come up.
Repairs & sync
Reindexing, orphan removal and the deferred queue.
Configuration
Every setting, with its default.
Console commands
Every screen has a CLI equivalent. Includes CI use.
Twig
craft.holmes, for front-end diagnostics.
Permissions
Who can look, who can audit, who can change it.
Extending
Your own checks, and events at every stage.
Troubleshooting
Findings that aren’t faults, and audits that won’t finish.
What Holmes is for
Craft’s search index is a table nobody looks at. Content goes in when an element is saved, searches come out, and when the wrong things come out — or the right things don’t — there is nothing to inspect. Holmes is that missing screen.
It is most useful right after the things that quietly break an index: a content import that wrote to the database directly, a queue that was failing for a week, a field added to a layout six months into a project, a plugin update that changed how a field produces keywords.
What Holmes is not for
It isn’t a search engine, and it doesn’t change how Craft searches. It adds no relevance tuning, no synonyms, no alternative index. Everything it reports is about the index Craft already keeps, and every repair goes through Craft’s own indexer — Holmes never writes to searchindex itself.
How it stays honest
The value of a drift report is entirely in its false-positive rate; a report that cries wolf gets ignored. Three rules keep it trustworthy:
- Recomputation mirrors Craft step for step — the same searchable attributes, the same grouping of field instances, the same normalization in the element’s own site language, the same padding and truncation.
- It fires
beforeIndexKeywordswhen recomputing, so plugins that rewrite or suppress keywords are honoured. Without that, Holmes would expect rows Craft was never going to write and report every one as drift. - Term strategy is read back out of Craft, not reimplemented. To decide whether a term uses full-text or LIKE, Holmes has Craft build the clause and reads the SQL that came back.
Requirements
- Craft CMS 5.3 or later
- PHP 8.2 or later
- MySQL or PostgreSQL — both are supported
No runtime dependencies beyond Craft itself. Holmes is free.