DEV Community

Cover image for Headless CMS full-text search comparison
andrzejwp for flotiq

Posted on • Originally published at flotiq.com

Headless CMS full-text search comparison

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

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.

Advantages of Prismic full-text search

Prismic search API

  • Prismic's docs also provide code snippets for many popular languages, which is also a plus.

Disadvantages of Prismic full-text search

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

Prismic search results - no scoring provided

Contentful

Contentful also supports full-text searches through their API, but it seems very basic.

Advantages of Contentful full-text search

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

Disadvantages of Contentful full-text search

  • The search API is minimal and Contentful admits that in their documentation:

Contentful search API

  • There are no aggregations or result scoring support.

Flotiq

Flotiq (yes, that's us ;) ) provides extensive full-text search capabilities by wrapping Elasticsearch in Flotiq APIs.

Advantages of Flotiq full-text search

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

Disadvantages of Flotiq full-text search

Gentics Mesh & Cloud CMS

Gentics Mesh and Cloud CMS both provide direct access to ElasticSearch query API and so - offer a very powerful search mechanism.

Advantages of Gentics' and Cloud CMS' full-text search

  • Powerful search engine, based on ElasticSearch

Disadvantages of Gentics' and Cloud CMS' full-text search

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

Contentstack

Contentstack provides a limited search API and recommends integrating with other services to provide full-text and ranked search results:

Advantages of Contentstack full-text search

  • They openly admit that you should use a dedicated search solution.

Disadvantages of Contentstack full-text search

  • Very limited.

Butter CMS

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.

Advantages of Butter CMS full-text search

  • Can't think of anything, sorry.

Disadvantages of Butter CMS full-text search

  • Minimal support, only in the blog engine part. Contentstack asks to use other services for search

Summary

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

Top comments (2)

Collapse
 
patarapolw profile image
Pacharapol Withayasakpunt

I simply love Elasticsearch's query_string, because it is based on end-user's string input. Hard to find alternatives.

Actually, I have found one, but not really what I want -- lunrjs.com/guides/searching.html

I have tried to create one, but it would never be as fast as a real full-text search.

Collapse
 
andrzejwp profile image
andrzejwp

Here's a little more detailed post on which parts of ES are exposed in Flotiq's search API dev.to/flotiq/headless-cms-search-...