This article originally appeared as a blog post on Flotiq.com
Most of the CMS systems on the market offer some level of support for full-text search, some of them are quite sophisticated, some are actually pretty poor. This article compares the search capabilities of Contentful, Prismic, Flotiq, Gentics Mesh, Cloud CMS and Butter CMS.
Prismic offers a wide variety of search capabilities. It doesn't matter if you want to search within a single data type or in the entire database - you can use the same mechanisms and APIs.
- Prismic's query predicates are a powerful, and easy to understand, concept and are supported by comprehensive documentation.
- Prismic's docs also provide code snippets for many popular languages, which is also a plus.
- It doesn't seem that Prismic provides any sort of scoring within the search results and the response is simply based on "match" or "no-match".
Contentful also supports full-text searches through their API, but it seems very basic.
- The search API is easy to use and understand.
- Their API provides support for geo-based queries, useful for searching objects within a distance from a given location.
- The search API is minimal and Contentful admits that in their documentation:
- There are no aggregations or result scoring support.
Flotiq (yes, that's us ;) ) provides extensive full-text search capabilities by wrapping Elasticsearch in Flotiq APIs.
- Flotiq's full-text search is based on queries passed to Elasticsearch, which is a very powerful full-text search engine.
- Flotiq wraps the ES API in order to provide better compatibility with the remaining parts of the API.
- Search results are scored.
- You can score each field individually, very convenient if you'd like to promote results where the match appears in a specific field, e.g. in the blog post title.
- You can aggregate results by any of the fields, which makes it super easy you build faceted search results pages.
- Flotiq's documentation is still evolving.
- Powerful search engine, based on ElasticSearch
- You will need to educate yourself on ElasticSearch as Gentics seems to provide raw access to ES, instead of neatly wrapping its API into a set of methods that are familiar to their own users.
- They openly admit that you should use a dedicated search solution.
- Very limited.
Butter CMS doesn't seem to care about search that much. They seem to only provide a search endpoint for their blog engine, and even that is very limited.
- Can't think of anything, sorry.
- Minimal support, only in the blog engine part.
Although most headless CMS solutions offer some kind of search - it's often constrained.
Having a powerful search engine, which is wrapped in a set of convenient APIs, seems a must in order to provide the end-users with search results that can be easily navigated, sorted and faceted. Yet, the most popular systems, like Contentful or ButterCMS, seem to ignore the problem and significantly limit the support for search.
The contending systems, like Cloud CMS, Flotiq or Gentics Mesh - offer better support for search by providing access to ElasticSearch, either directly (Gentics, Cloud) or by wrapping it into more straightforward and more familiar APIs (Flotiq).