Augmented search overview and architecture

  Written by The Jahia Team
   Estimated reading time:

Augmented search provides a modern search experience and is built into the Jahia platform. Augmented search uses Elasticsearch to index and search contents in your Jahia websites. Augmented search sends index data and search queries to an Elasticsearch environment and retrieves search results. The search improves the relevance and quality of search results compared to the default JCR search.

This topics provides a description of the mandatory and optional modules that you need to use augmented search and a logical architecture of augmented search. The topic also describes how you can customize augmented search.

Augmented search modules

Augmented search is made of the following Jahia modules that you can find on the Jahia Store:

  • Augmented Search
    Adds a GraphQL API endpoint and the backend logic for search
  • Augmented Search UI
    Provides a component that you can drag-and-drop on any Jahia page to display a search UI. This component is based on search ui, an open source project lead by Elasticsearch. The module also includes the search UI Jahia connector that bridges this UI with the Jahia GraphQL API.
    This module must be forked if you want to customize the search experience.
  • Database Connector
    Enables you to connect to 3rd party databases.
  • Elasticsearch Connector 7
    Allows you to connect with Elasticsearch. The module version matches the Elasticsearch version it supports (7.4.0). This module is based on the database connector.

The Augmented search UI is based on the following technical components. While they are not needed to use augmented search, it can be useful for the dev team to have this information:

  • Search UI by Elastic (Swiftype)
    Search UI is a React library built by Elastic (Swiftype) that enables you to quickly implement search experiences without reinventing the wheel.
    Note: This is not a Jahia Module.
  • Search UI Jahia connector
    This connector has been built by Jahia to bridge the search UI to the Jahia GraphQL API.
    Note: This is not a Jahia module.

The Augmented Search Enterprise Distribution is a Jahia package (or set of modules) that includes the following Jahia modules:

  • Augmented Search 1.0.0
  • Augmented Search UI
  • Database Connector 1.2.0
  • Elasticsearch Connector 7.4.0

Logical architecture

The following diagram shows the architecture of augmented search. As shown in the diagram, Augmented Search UI captures HTTPs search requests from visitor browsers and sends them to the Jahia GraphQL API. The API is responsible for search logic and sending requests to Elasticsearch. Connections between Elasticsearch and your databases are managed by Elasticsearch Connector 7 and Database Connector. Elasticsearch indexes and searches your data. 

In the diagram, blue is used to refer to Jahia modules.

augmented-search-schema.png

Customizing augmented search behavior

Augmented search is based on the existing Elastic Search UI React library and a new Jahia Search UI Connector links those modules to our GraphQL API. Jahia's Augmented Search UI component provides a reference implementation of Elastic Search UI with our Jahia connector. You can use the component as a base to customize on or alternatively as an example while building your own React App.

Related links