A Solution to Limited Search

Written by Vasken Hauri, Vice President, Platforms & Systems at ElasticPress.io, one of our sponsors.

WordCamps are a great way to see the strength of the WordPress community up close. At WordCamp Seattle, you can connect with hundreds of WordPress developers, designers, and publishers. ElasticPress.io is proud to support the WordPress community as a sponsor of another WordCamp Seattle. There’s an indelible link between an open, collaborative internet, the strength of the tools and platforms that drive experiences on the web, and the community that builds it all. WordCamps provide an integral opportunity to grow and educate that community, which is why 10up—the company behind ElasticPress—has been sponsoring WordCamps since our founding back in 2011.

ElasticPress.io is 10up’s solution to the limited search features and other query bottlenecks endemic to WordPress core, especially when used at scale.

MySQL

You see, out of the box, WordPress uses MySQL to organize and store content—a popular database making WordPress accessible to developers, and making it possible for small sites to access cheap hosting. However, databases like MySQL aren’t optimized for freeform search and more complicated filtering and faceting. So much so that, by default, WordPress search only looks at post titles and content, omitting valuable data that might be stored in places like custom fields. Multifaceted queries—say, looking for (1) women’s (2) t-shirts in size (3) medium that are (4) in stock and (5) less than $30 are slow and taxing on hosts, and, with so many combinations, cannot easily be circumvented with conventional techniques like caching. This limits the options for large-scale databases or sites running in a shared hosting environment.

Some plugins work around some of these challenges in inspired ways, but most are restricted to mitigating unavoidable MySQL limits. The more your content grows—whether you’re a newsroom with thousands of stories or a store with hundreds of SKUs—and the more ways to filter that content, the more unavoidable the problem becomes. Plugins, like SearchWP and Relevanssi, do a good job of addressing the weaknesses inherent in default WordPress search, but we believe these best serve sites with smaller databases, or perhaps up to a few thousand posts. Larger sites will require a different solution.

Elasticsearch

This challenge, plaguing a rapidly scaling internet, spawned a new generation of “noSQL” content storage and search solutions—one of the most popular being Elasticsearch. Elasticsearch is an open-source, third-party service that can filter between different types of content, categories, tags, authors, date ranges, etc. It must be run on hosting accounts through a dedicated hosting environment. Further, it requires extensive configuration. With no structure inherent to itself, the setup of Elasticsearch requires the input of all data components, field types, languages, or any other custom elements your schema requires. This makes it a great option for sites supported by experienced development teams.

Seeing the need for a full-featured search solution for large-scale sites, and determined to help them keep pace and not “outgrow” WordPress, 10up created and open sourced ElasticPress, a plugin that acts as “smart glue” between Elasticsearch and your WordPress data.

The plugin requires Elasticsearch to be properly installed and configured, so ElasticPress.io, the complete, end-to-end search and query engine for WordPress.we felt there was still more we could do to support sites that may not have the technical staff or time to configure and maintain Elasticsearch. Technologies are also evolving rapidly—Elasticsearch is iterating and we’ve also been adding features and tuning search logic for the ElasticPress plugin. But some features require greater control of the server for adding modules and ensuring the security of all applications.

The complete, end-to-end search and query engine

So we created ElasticPress.io, the complete, end-to-end search and query engine for WordPress. Extending Elasticsearch technology, ElasticPress.io works with our ElasticPress plugin to seamlessly connect WordPress to a modern, high-performance solution enabling features like:

  • Weighted full-text search, including custom fields, tags, and other metadata;
  • Fuzzy matching with spelling suggestions;
  • Full-text search of popular documents formats like PDFs and Word documents;
  • Autocomplete recommended matches in the search bar (“autosuggest”);
  • Searching across all sites in a multisite;
  • Drag-and-drop “facet” widgets for high-speed filtering of content across multiple categories or taxonomies;
  • WooCommerce optimization, speeding up search results and product filtering so that customers can quickly and dependably find and buy the products they’re looking for.

Built to be extended.

Designed and engineered by our team at 10up, the ElasticPress plugin is built to be extended. WordPress developers can take advantage of its APIs, hooks, and other developer features to customize its default behavior and further tap into its potential for each project.

The ElasticPress plugin will always be free and open, and we plan to make every feature we can available for any Elasticsearch host, for teams who are up for tuning and managing their own hosting. For everyone else, our end-to-end ElasticPress.io solution starts at $79/month, and you can try it out for free for 14 days. Combined with our customer support, for most businesses and developers, we think this makes the benefits of ElasticPress and modern query engines accessible to a whole new part of the WordPress community.

Stop by our table and learn more about ElasticPress.io, or to chat WordPress development and open source. You can also follow along with us on Twitter, at @ElasticPressIO. We can’t wait to see you at WordCamp Seattle.

 

WordCamp Seattle 2018 is over. Check out the next edition!