← All releases

wp-content/plugins/quiver/quiver.php

Quiver

Better search results without a search server, by weighting the fields you already have.

== Description ==

Core search sorts by date and treats a word in the title exactly like a word in the ninth paragraph. Quiver adds field weighting, phrase matching and a recency boost, all in SQL, with no external service and nothing to keep in sync.

The debug view shows the score breakdown for each result: title match, content match, taxonomy match, recency. When a result ranks somewhere surprising, you can see which term did it rather than guessing.

It builds one index table, updated on save. On a 20,000-post site the index is 40MB and a query takes 30ms — slower than a dedicated search server and far less to operate.

== Screenshots ==

Numbered the way they ship in /assets/. Click any one to see it full width.

== Installation ==

  • Install and activate the plugin.
  • Run wp quiver index to build the index for existing content.
  • Tune weights under Settings → Search, or leave the defaults.

Accented and non-Latin scripts are normalised at index time, so a search for “cafe” finds “café”.

== Frequently asked questions ==

Does it need Elasticsearch?

No. That is the entire point. If you have Elasticsearch, use it — this is for the sites that do not.

How large can it scale?

Comfortably to about 100,000 posts. Past that, a real search engine is the right answer and the readme says so.

Does it handle CJK?

Bigram indexing for CJK scripts, which works well enough for titles and adequately for body text.

== Changelog ==

= 1.9.3 =

  • Fixed: the recency boost was applied before field weighting, so old exact-title matches ranked below recent partial ones.

= 1.9.0 =

  • Score breakdown in the debug view.

= 1.6.0 =

  • Bigram indexing for CJK scripts.