August 30, 2015

collective.elasticindex: Plone integration with Elasticsearch

A better fulltext search for Plone based on Elasticsearch

Over the last few weeks I had been working on a new enhanced version of collective.elasticindex. collective.elasticindex was originally written and maintained by Infrae.

A better fulltext search in Plone was always demanded by customers of the last years. TextIndexNG3 solved this problem for a long time. However no solution is perfect and every software has its time. So it was straight forward moving forward to Elasticsearch.

Why not Solr? ...too boring...uses XML...not sexy enough. Elasticsearch in general has a lot of momentum right now and is easier to setup and maintain.

We extended collective.elasticindex in the following ways

  • unified livesearch and extended user interface
  • much better support for multi-lingual content by applying language specific analyzers to content and queries
  • configurable search results template (based on client-side Javascript templates implemented on top of Markup.js)
  • better configuration options of the language specific aspects
  • support Plone 4.3 (Plone 5.0 support should also work soon..some issues with the Plone legacy bundle handling in Plone 5)

Limitations

  • Plone 5.0 support should also work soon..some issues with the Plone legacy bundle handling in Plone 5
  • Requires Elasticsearch 1.6.X for now. Elasticsearch support 2.0 requires an updated very of pyes which does not deal very well with changes in the error messages of Elasticsearch 2.0

Limitations

Many thanks to Infrae for building the first version of collective.elasticindex.