Typesense as fulltext option for Plone finally in production

Almost two years ago, I announced the integration of the Typesense search eingine into Plone. Sometimes, things take a while and require a different approach.

Finally, after much anticipation, we have successfully implemented Typesense in our medical guideline portal, Onkopedia, and it is now fully operational in our production environment.

The beta integration of the search can be found here (German only):

A part of the site and its content is also available in English for searching.

With Typesense, we offer a bunch of new features for site visitors navigation through large amounts of medical contents, medical terms and topics:

  • Search-as-you-type: Instantly update the search results as you type.
  • Search through Plone content, XML content, and a larger number of presentations (PDF).
    Implement faceted search to enable filtering by document types and medical topics.
  • Exceptional performance, lightning-fast.

Some implementation details:

  • We export the content from Plone as custom JSON on a daily basis. The content changes gradually over time, so real-time updates of the search index are unnecessary.
  • The JSON will be exported and then imported into Typesense.
  • Typesense and Plone are generally highly decoupled. There is no need for extra search indexes, as the standard ZCatalog remains untouched and does not play a role in our approach.

Integration details:

  • The search UI in Plone has a minimal integration as a browser view. The template provides the overall structure for the auto-generated UI, along with a bit of JavaScript code for configuring the connection of Typesense and setting up the user interface and its widgets. Additionally, there are some other aspects that are also configured.
  • The search user interfaces directly interact with our Typesense search engine (on-premise), without any involvement with Plone.

Security considerations:

In general, all content on the site is accessible to the public. However, there are certain special documents that require authentication, exclusively for members of the founding medical societies. These documents are assigned a flag, public=True|False, which indicates their status. In the list of search results, these protected documents are identifiable by a lock symbol. If you attempt to access a protected document, the standard Plone security system will handle the authorization process once more.

Presentation from last year's World Plone Day:

Takeaways:

  • Typesense is a new very fast and highly accurate search engine
  • The Typesense server is extremely easy to deploy and configure (compared to a Solr installation)
  • A flexible and highly configurable auto-generated search user-interface with many widget options
  • Easy integration with any CMS/content application through JSON export/import
9 Likes