Searching in WordPress is not great; MySQL is a relational datastore but most of our WP data consists of written language and thus hard to search. Elasticsearch allows us to bridge this gap and finally give WP the search it deserves.
Document Store Storage Model Normalized Denormalized Consistency Strong Eventual Replication Master-Slave Native HA Inserts Fast Slow Query Language SQL Expressive JSON Query Execution Single Threaded Distributed Analytics Simple Advanced
• Geo matching • Handling common terms (“to be or not to be”) • Matching with edits (misspelled words) • Multi stage scoring with query rescore • Function scoring
minimal configuration • Interact via native PHP clients or ES JSON REST API • Completely own your data • Access to full set of filters, queries, and aggregations • Manage your own indexing and updates to keep posts in sync • WordPress plugin: jetpack.me • Wrapper for RESTful API calls to Automattic infrastructure • Interact via WordPress.com JSON REST API • Public posts synced • Limited to safe queries & filters; no aggregations* • Automatic syncing of posts; can manually trigger bulk sync * Does not apply for VIP ES add-on
• Intelligent handling of post tags, categories, taxonomies, and post_meta values • Tokenization & indexing dates; optimized for multidimensional date queries • Extraction & indexing of meaningful objects within post content developer.wordpress.com/docs/elasticsearch/post-doc-schema
ES indices with tried and true mappings • Analyzer Builders — Helps create multi-lingual analyzer chains with linguistic best practices • Document Builders & Iterations — Tools to create ES documents and to help bulk indexing operations github.com/automattic/wpes-lib