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.
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.
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.