Skip to content

2.0.0

Choose a tag to compare

@ogorzalka ogorzalka released this 08 Oct 15:59
· 139 commits to main since this release
8f5ac83

MeiliScout 2.0 serves WP_Query and get_terms() from Meilisearch, with the same results as MySQL, and comes with a new admin.

Upgrading from 1.x

  1. Update the plugin, then run a full indexation (wp meiliscout index, or Indexation › Run the indexation in the admin). Until it is done, searches keep reading the 1.x index: nothing breaks meanwhile.
  2. Indexes are now prefixed (MEILI_INDEX_PREFIX, or the site's domain): <prefix>_posts, <prefix>_taxonomies. Give your API keys access to them.
  3. Terms are grouped by taxonomy: filter on taxonomies.<taxonomy>.slug. terms.taxonomy / terms.slug are no longer filterable: update any filter written by hand. amphibee/meilisearch-facets main (1.1.0) does it for you (MeiliScout::taxonomyFilter()).
  4. Code reading the index directly takes its name from IndexNames::active('posts'), not 'posts'.
  5. Requests the integration does not cover keep running on MySQL: the Overview counts them (« MySQL fallback ») with their reasons.

Highlights

  • WP_Query parity (#37): each query is translated faithfully, or runs on MySQL with a recorded reason (unsupported_arg:author, unindexed_meta:price…). Coverage in docs/WP_QUERY.md. Queries served without use_meilisearch are chosen in Settings › Queries (all off by default).
  • get_terms() from Meilisearch (#38): WP_Term_Query on the taxonomies index, object_ids through the posts index, term meta keys, same translate-or-fall-back rule. Coverage in docs/TERM_QUERY.md.
  • New admin (#36): Overview, Content, Indexation, Search preview (with a WP_Query and get_terms() tester), Settings. Relevance order of the searched fields, MySQL fallback counter, retry of a failed real-time task, index stats.
  • Migration without downtime: a full indexation builds new indexes and switches searches over at the end.
  • Media can be indexed and queried; private content optionally (off by default).
  • Plugins narrowing the index settings through meiliscout/indexables: queries read back what was pushed and fall back to MySQL when a field they need is missing.
  • Debugging: Query Monitor panel, X-MeiliScout header, wp meiliscout check-queries [--terms].

Requirements

PHP 8.2+, WordPress 6.6+, Meilisearch 1.x. The zip attached to this release ships its dependencies; with Composer, composer require amphibee/meiliscout:^2.0.

Full list: #36, #37, #38, #39.