Product

Ingesting Data from Adobe Experience Manager (AEM) for Search & Discovery
facebooklinkedintwittermail

Businesses spend a lot of time and resources developing content that can support the sale of a product, promote their brand and thought leadership, educate their users, or answer frequently asked questions. It is essential that they can organize their content to provide the most relevant information to a given persona. While this can end up being a manual process for marketers and digital publishers, smarter search and discovery platforms like Algolia can make this easier and drive stronger engagement.

Algolia is an API-first solution that easily integrates with both monolithic and headless platforms, including Adobe’s popular CMS, Adobe Experience Manager (AEM). As we’ve seen more and more Adobe customers use Algolia on top of AEM to manage and surface their content, we wanted to discuss the three ways they connect these two systems: through APIs, partner-built integrations, and the Algolia Crawler.

Adobe Experience Manager holds all of the pages, assets, and content that are managed across digital channels. Moreover, other content may be stored in external systems, such as Zendesk or an eCommerce system such as Adobe Commerce. By indexing all of it to Algolia, customers can easily create a unified search experience, thus allowing their customers to search different types of content through one search bar. This may be all the brand sites for a mega-CPG brand, the media content for a streaming service, or the products, manuals, and FAQs for an equipment company. In all these cases, it is important to aggregate and surface all of the content that comes from AEM and other platforms, into one experience. Additionally, all of the content gets surfaced in a highly performant way, with results updating in milliseconds on each keystroke.

Pentair is a great example of a B2C / B2B company that uses Algolia to tie together their AEM content and Adobe Commerce products. They have built a beautiful, unified search and discovery experience for their users to interact with.

adobe algolia pentair front end

How do we connect AEM with Algolia?

Option 1: Java API Client

As a direct way to index your data, Algolia provides a Java API. The Java API client is an open source, production-ready API wrapper that abstracts from the complexity of directly interfacing with the Algolia Search API. It handles, for example, the network retry strategy, record batching, and reindexing. Because AEM is an OSGi platform that requires a uber JAR as a dependency, we provide algoliasearch-apache-uber which is compatible with those platforms.

adobe javascript api

Using the Algolia Java API directly allows for higher flexibility to meet your business needs. The Java API client can require additional investment and time, but will allow you to customize to your content structure and specifications. Leveraging the AEM’s events engine will deliver near real-time indexing upon content changes to the Algolia index as defined in the configuration.

As for the search experience, you have two options: you can use one of Algolia’s API clients (Java, JavaScript, PHP, and eight other languages) to develop a customized experience from scratch; or you can leverage Algolia’s search widgets with its InstantSearch library, available in vanilla Javascript, ReactJS, AngularJS, or more. Algolia’s InstantSearch library calls Algolia’s most proximate servers, allowing for an incredibly fast, search-as-you-type experience. Instead of building your own UI components, InstantSearch widgets can be embedded into your AEM components and used by publishers to build the search experience and results pages on their sites, leveling-up their site performance and speed.

Why you would choose this method

Many customers and SI / agency partners choose to build a bespoke integration between AEM and Algolia using our Java API client and InstantSearch libraries. This in-house solution provides added flexibility to the way the client has customized their data structures.

Option 2: Algolia Indexer Accelerator for Adobe Experience Manager

To speed up the development process, we have built an accelerator that leverages the Java API to index data from AEM. The package can be requested through the Adobe Exchange, or you can make a request at adobe-algolia-solutions@algolia.com. This connector includes the configuration module, a way to assign a configuration to a path of content, and a re-indexing service to trigger a manual re-index.

AEM Indexer

Configuration: After the connector is installed on the AEM Author instance, the author will need to configure the indexing service, navigating to ‘Algolia’ under Cloud Services. There, you can configure the index for each site property, including the fields to index, property names, and publish urls. If inheritance is enabled, the configuration console will allow for inheritance so that any missing configuration properties will be found in the ancestor nodes.

Once the configurations have been created, they can now be assigned to the site tree at any level.

Indexing: The indexing service then indexes the pages, components, properties, assets, and fragments on a publish event. For a full index of a site, the connector provides an Algolia Indexer console under ‘Deployment’. The author is presented with a path finder to select a starting path to begin the index. If the ‘Tree Activation’ checkbox is selected, the indexer will crawl and index the site tree.

A ‘publish’ action on the pages/assets will look for the configured properties in the page content and index to Algolia. A ‘unpublish’ event will remove the page or asset from the Algolia index. An additional service can be deployed on the publish instance to retrieve a vanity url for the page, should one exist.

Why you would choose this method

The AEM Algolia connector will accelerate your development cycle with Algolia. With a little investment and some customization, this integration will allow you to index all your content and update with every change in real-time.

Option 3: Crawler

The Crawler is Algolia’s proprietary automated web-scraping program. When given a set of start URLs and configured extraction definitions, the Crawler visits and extracts content from those pages. It then visits URLs linked to these pages and the process repeats itself for those pages. With little configuration, the Crawler can populate and maintain Algolia indices for you by periodically extracting content from your web pages via schedule.

adobe algolia crawler

The Crawler can help you extract content from multiple sites, format that content, and upload it to Algolia. The Crawler:

  • Quickly aggregates your distributed content
  • Automatically and periodically updates your aggregated content
  • Enables you to quickly and accurately search through your records (and provide this same search experience to your clients)

For the front-end search experience, the components will still need to be created, as mentioned with Option 1. With Algolia’s InstantSearch library, you can leverage our pre-built search widgets by embedding them into your AEM components or using them to build a headless front end, thus accelerating the delivery of your search experience.

Why you would choose this method

If your data resides in many places inside and outside of AEM, or if you don’t have a lot of metadata to categorize your content, or if your go-live is on a short timeline, you may consider using the crawler as an efficient way to index your data into Algolia and tag each piece of content with categories based on the site structure.

Conclusion

Once you get your AEM content indexed into Algolia, you will make it more discoverable, and can start to configure your relevancy and ranking order, and A/B test to see how you can get the most engagement on your content. We look forward to hearing from you on which indexing approach works best for you, and any feedback or best practices you want to share with the community. Reach out to us at adobe-algolia-solutions@algolia.com.

Check out the next blogs in our ‘Algolia x Adobe Integrations’ series, on how to leverage Adobe Launch events and Adobe Analytics metrics in Algolia to superpower your search results!

About the authorsDebanshi Bheda

Debanshi Bheda

Global Alliances Director - Algolia
Sajid Momin

Sajid Momin

Senior Director, Integrations @ Algolia
Micah Garside-White

Micah Garside-White

Solutions Engineer @ Algolia

Recommended Articles

Powered by Algolia AI Recommendations

How to Build an Algolia-Powered Search and Discovery Experience on Adobe Experience Manager
Product

How to Build an Algolia-Powered Search and Discovery Experience on Adobe Experience Manager

Debanshi Bheda

Debanshi Bheda

Global Alliances Director - Algolia
Sajid Momin

Sajid Momin

Senior Director, Integrations @ Algolia
Building Immersive Shopping Experiences: Using Algolia Search with Adobe Experience Manager and any Commerce Platform
E-commerce

Building Immersive Shopping Experiences: Using Algolia Search with Adobe Experience Manager and any Commerce Platform

Debanshi Bheda

Debanshi Bheda

Global Alliances Director - Algolia
Extending Adobe Edge Delivery Services for performant search
E-commerce

Extending Adobe Edge Delivery Services for performant search

Debanshi Bheda

Debanshi Bheda

Global Alliances Director - Algolia