14

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

 2 years ago
source link: https://www.algolia.com/blog/product/ingesting-data-from-adobe-experience-manager-aem-for-search-discovery/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

Apr 1st 2022

Product

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 Connector for Adobe Experience Manager

To accelerate the development process, some of our Adobe service partners have built their own integrations that leverage the Java API, as well as our frontend UI libraries. Our partner Ayasya built an AEM/Algolia Connector which is available for installation on the Adobe Exchange. This connector includes the configuration module, indexing service, and front-end search component.

adobe-algolia-281x178.png

Source: Ayasya

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.

The front end: Finally, the connector provides an AEM component to build the Algolia search user experience using Algolia’s InstantSearch library. This is a single component that encapsulates the search experience. Author can enable the search box, facets, and sorting. The component comes with a basic UI, but can be customized to fit the customers branding requirements. Use proper AEM inheritance so that you do not directly change the provided components from the connector. 

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, update with every change, and build a frontend experience on AEM powered by Algolia.

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.

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 Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK