Searching For A Better WordPress Search

On May 6th, the WordPress VIP team blog announced a new VIP service they’ll be offering centered around search. While at first it may be surprising that the default search in WordPress was not used in their latest project, the fact is, WordPress search in its current state can not perform complex search queries without using a considerable amount of computational resources which spells doom for users on shared webhosting. The VIP Search Add-on uses third party software called Elasticsearch which is open source and can be used by anyone. However, upon looking at the requirements and the methods of setting it up, it’s only meant for those that have the ability to run software on their hosting accounts either through a dedicated box or VPS. By using Elastic search, the VIP team was able to provide search capabilities such as being able to filter between the different types of content, categories, tags, authors, date ranges and more. To see the advanced search capabilities in action, check out http://kff.org/search/. I reached out to Paul Maiorana, Vice President of Platform Services for Automattic but was unable to get a response I could share with the public.

VIP Search box

I briefly conversed with other members of the WordPress community on Twitter on why WordPress does not already have those advanced search queries out of the box. The gist of the conversation was that performing such intensive searches would be too much for the limited resources shared hosting provides. It was also mentioned that most of the functionality can be achieved using Google Custom Search. In fact, Matt Mullenwegs personal WordPress site Ma.tt runs Google Custom Search.

Interestingly enough, back in 2009, Matt published a post that highlighted a new hosted service called Acquia Search that Drupal users could tap into. At the time, commenters urged Matt to continue to improve the search capabilities in WordPress as some users were not fans of relying on a third party service. Matt’s response was:

Yes and there is a Google Summer of Code project on this right now, but as with video processing we’re limited by the resources available to us by default and it’s something that could be fairly efficiently done as a remote service.

If you’re interested, you can see the proposal for that Google Summer Of Code project here. According to Justin’s mentor Andy Skelton, Justin Shreve was successful in completing his search API project which the results can be found within the plugin repository except that the plugin has not been updated for over two years. After asking around to see if the search API ever made it to core, it appears not.

So while I don’t see any major improvement taking place in the near future for the core implementation of search, there are a few plugins out there that improve the situation. In fact, if you conduct a search of the WordPress plugin repository using the keyword of search, 16 results show up although not all of the results are specifically tailored for the search functionality of WordPress. I personally have not yet taken the time to evaluate the different plugins but I have heard from a number of users that Relevanssi is a good solution. Of course, there is always Google Custom Search which has a proven track record.

Do you think having better search functionality in WordPress is worth paying for? Have you installed any plugins or have manually improved the search capabilities on your website? Let me know your thoughts in the comments on the state of search in WordPress.

16

16 responses to “Searching For A Better WordPress Search”

  1. I built a search plugin for this very reason, but of course like Matt said, you can’t control a lot of things on the user’s site, so my plugin doesn’t work well on shared hosting for larger sites.

    Something I built into my plugin, and would want to see available in a future solution, would be some ability for it to take into consideration the actual markup/output used for the content. This way, it could automatically build relevancy on specific keywords per page and take into account other content on that page which may not strictly be in post_content or the title. Display of custom fields is also important, because it’s not jus the data, there could be templating stuff that is essentially invisible to plugins that only look at meta.

    Anyways, I don’t have a ton of time to work on my search plugin any more, I’m focusing on Pods mostly. But I know that when I get some more time, I’ll be looking into a few more updates, but I hope a better solution comes out so I don’t have to spread myself too thin.

  2. @Scott Kingsley Clark – Well, the more I look into it, the more it makes sense to offload all of the resource heavy searching to the cloud via a service and just use the plugin to provide the functionality and different methods of searching which seems to be exactly what the VIP search addon with Elastic provides. The last thing I want to do is have good search but take down my site and upset my webhost lol.

  3. @Jeffro – Right, and that makes sense to cover most cases there, as opposed to maybe the developer crowd who have better hosting and would prefer better plugins/built-in stuff as opposed to the third-party service.

    The VIP search isn’t available for .org users (yet) though, so there’s still much to be desired there.

  4. I work for Swiftype, which provides a cloud search plugin for WordPress.

    We definitely see the advantage of off-loading search to another server. Plugins that use your local database like Relevanssi can’t handle lots of posts, whereas we have customers with hundreds of thousands of posts happily using our service. Additionally, we give you nice search analytics and the ability to change result rankings by dragging and dropping.

    If you’re not on VIP (or if you are — our plugin is VIP-approved), give Swiftype a look. It’s free for small sites.

  5. Seems Luke beat me to it but I was going to mention swiftype.com as we’ve used that on a couple sites before and are happy with the results. I’ve used all the others too and I’ll stick with them for now.
    And just to throw it out there… G. custom search is a horrible experience for users.

  6. Do you think having better search functionality in WordPress is worth paying for? Have you installed any plugins or have manually improved the search capabilities on your website?

    WordPress’ biggest lacking feature till date is an advanced search feature. However, paying for search would largely depend on if you’re making enough money from your blogs to justify the extra cost.

    Then again if you’re a huge blog, “outsourcing” your search requirements makes sense.

    I use my own plugin “Better Search” – https://wordpress.org/extend/plugins/better-search/ on my sites which uses mySQL’s FULLTEXT index.

  7. Looks like you didn’t dig far enough… While elasticsearch requires its own server to run, there is also a hosted service that offers the same thing.

    https://searchbox.io/

    Searchbox.io offers free plans with paid plans for more indexing and storage.

    They even have their own WordPress plugin (http://searchbox-io.github.io/wp-elasticsearch/) which integrates elasticsearch into your WordPress install quite easily.

  8. At the least, core needs to base search on relevancy, something I think there’s at least a couple of existing tickets for. Something like this would be fantastic, but as Ryan said above, elasticsearch is a hosted service, which is quite the barrier to adoption.

  9. I’ve been using the plugins “relevanssi” and “dave’s live search” and they work well together, but have noticed a bit of a lag and slowness sometimes (especially when waiting for the “live search” to pop in. My site http://www.membershipexpert.com isn’t too large, a few hundreds articles and not a lot of videos or audios yet, just plain text, but you can tell the WordPress search is struggling a bit under the load. I don’t blame any one plugin but when you’re running many plugins (30 or more), sites can slow significantly under the strain. Offloading the search seems like a great idea and is one less thing to tax your server.

  10. @Jeffro – I’ve been testing out the external Swiftype Search service for the new Pods site. It seems to do a really great job out of the box. No support for custom fields though, but you can choose whether to index pages of content or use their WordPress plugin and index only the content of the post. Their indexer has some custom meta tags you can use to pop your extra content into for indexing too.

  11. Jeffro notes:

    It was also mentioned that most of the [intensive search] functionality can be achieved using Google Custom Search. In fact, Matt Mullenwegs personal WordPress site Ma.tt runs Google Custom Search.

    I wonder if that reflects that Matt prefers the Google service; that he is steering regular WordPress users to a practical solution, or is sparing the environment/farm on which his domain resides.

    Caching and pre-indexing are helpful. At one time, it was rather common for document-search facilities to pre-index. Once the simple term-indexing is done, then more elaborate search-strategies can work off the indexes.

    WordPress caching plugins routinely cache search-results. An appropriately regulated background indexer could make the cache into a more-overt/robust search-enhancement.

    Fancy searches do require additional levels of involvement … and of course, for many folks & enterprises, the off-site cloud-based search-service [see: Review – Swiftype Search Plugin] is just the ticket.

    For some folks & situations, though, there can be attractions & values in taking a more hands-on approach with search-functionalities. It becomes a database & data-processing undertaking: indexes of terms found within the site form the data, and query-facilities process it and return hits (taking input from the advance search interface).

    A search of WordPress Extend using ‘sqlite + cache’ returns 4 plugin titles, 2 that look interesting.

Newsletter

Subscribe Via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.