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.

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 beforeIndexKeywords when 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.