Faceted search for WordPress
Matt Gibbs, the original creator of the popular Pods Framework, has launched his latest project: FacetWP. FacetWP is a commercial plugin to offer faceted search capability for WordPress.
Faceted search, if you’re unfamiliar, is an advanced search technique:
A technique for accessing information organized according to a faceted classification system, allowing users to explore a collection of information by applying multiple filters. A faceted classification system classifies each information element along multiple explicit dimensions, enabling the classifications to be accessed and ordered in multiple ways rather than in a single, pre-determined, taxonomic order.
In the case of FacetWP, it allows you to have a live-refreshed search archive that allows filtering initial search results based on various post type, taxonomy, and custom field parameters of your choosing. You can see a frontend demo of FacetWP to get a better visual.
Based on the demo, it is a little strange that it seems to not accept multiple-checkbox selections for one field. I’d imagine those are coming though. Also, according to Matt, sliders, date ranges, and number ranges are in the works for field types.
FacetWP has a thorough admin interface for both creating facets and the corresponding search indexes, as well as some form of shortcode templating mechanism. The admin interface for building Facets and search indexes is really neat; but the templating aspect seems forced, as the users definitely needs to know code still, which makes me wonder why it’s necessary at all. I would rather put my code in actual templates versus WordPress settings fields.
The state of search in WordPress
Search in WordPress has sucked for a long time. There have been a variety of alternatives over the years such as Google Custom Search and Relevanssi. But there seems to be a surge of new options lately.
About a month ago I linked up SearchWP, a new, self-hosted search option for WordPress. I’m really excited to try that one out further. I’ve heard good things so far. And it appears Matt and Jonathan Christopher have some form of relationship between FacetWP and SearchWP as well, as Matt links to SearchWP from his homepage.
There is also Swiftype, a hosted custom-search tool that is very promising, but definitely different than SearchWP. Swiftype is a recommended solution for custom search for WordPress.com VIP clients.
Speaking of WordPress.com VIP clients, they probably have the most similar WordPress-oriented solution to FacetWP. They announced their faceted search solution for VIP in May, which is powered by ElastiSearch, an open source real-time search engine used by basically every big startup I can think of that would need that kind of search. But WordPress VIP clients have to pay $1200 per month to use that service, and it’s not yet available for self-hosted folks.
And then there is Omnisearch. Omnisearch is a Jetpack module that has a path to make it into core, and it helps make searching the admin a better experience. I’m honestly not sure why it couldn’t be used to power frontend search. I really don’t know much about Omnisearch at all, but it’s worth noting.
I’m happy to see these various solutions appear to improve WordPress search. They certainly span a number of areas between self-hosted search, hosted search, admin search, and faceted search.
Seeing someone like Matt, who has experience building complex WordPress tools already, is really exciting. I look forward to seeing where he takes FacetWP.
There’s also Facetious, a faceted search plugin we developed within Code For The People for client work, and have subsequently released via the WP repo and Github.
We’ve gone for a much more straightforward approach: out of the box, there’s a WP widget allowing you to specify the post type you want to filter, and the taxonomies you want to offer as filtering options. We also allow for filtering by a search keyword, and a month of publication.
If you’re looking for greater functional or aesthetic control, or if you want to place the search form somewhere other than a sidebar, there’s also a template tag… or for greater future-proofing, a ‘do_action’ method.
Facetious uses the built-in WordPress search function, with all its well-known limitations; and we don’t make any attempt to show numbers of results.
But we do include a ‘pretty permalink’ structure for search results, meaning queries can be cached easily by plugins such as WP Super Cache.
Oh, and Facetious is 100% cheaper than FacetWP too. 🙂
You can find Facetious in the WP plugin repo; and if you want to help us enhance it, we’d welcome your contributions via Github:
This looks pretty nice too, Simon. You should provide a demo, more screenshots, and have a link to your plugins from your website so I can know about when you guys do awesome work 🙂
Hi Simon, your plugin code looks good. I just wanted to clarify a few things.
You suggest that Facetious is a “100% cheaper” alternative to FacetWP, which is misleading. The plugins do entirely different things.
FacetWP brings real-time, interactive faceting to WordPress. Facets are actually “aware” of each other (as opposed to static lists / dropdowns). Traditionally, this sort of functionality depended on a dedicated search engine, such as Elastic Search.
Facetious does make it easy to create dropdown filters, but that’s not providing the same level of interactivity that FacetWP offers.
You gloss over the “number of results” feature, but that’s actually an important part of FacetWP. When a user interacts with a facet, all other facets on the page automatically refresh, and facets without matching content will disappear. This means that users will be able to find what they’re looking for quickly, and be less likely to run into filtering “dead-ends”.
all I have to say is wow, love the ajax filtering without reload, I recently bought searchwp, and love that one too, I will have to pickup a copy of facetwp!
Comments are closed.