Overview

The search feature is an essential feature of AEM Communities. In addition to the AEM platform search capabilities, AEM Communities provides the UGC search API for the purpose of searching user generated content (UGC). UGC has unique properties as it is entered and stored separately from other AEM content and user data.

For Communities, the two things generally searched for are

content posted by community members

uses AEM Communities' UGC search API

users and user groups (user data)

uses the AEM platform search capabilities

This section of the documentation is of interest to developers who are creating custom components that create or manage UGC.

Security and Shadow Nodes

For a custom component, it is necessary to use the SocialResourceUtilities methods. The utility methods that create and search for UGC will establish the required shadow nodes and ensure the member has the correct permissions for the request.

What is not managed through the SRP utilities are properties related to moderation.

UGC Search API

The UGC common store is provided by one of a variety of storage resource providers (SRPs), each possibly having a different native query language. Therefore, regardless of the SRP chosen, custom code should use methods from the UGC API package (com.adobe.cq.social.ugc.api) which will invoke the query language appropriate for the chosen SRP.

ASRP Searches

For ASRP, UGC is stored in the Adobe cloud. While UGC is not visible in CRX, moderation is available from both the author and publish environments. The use of the UGC search API works for ASRP the same as for other SRPs.

Tools do not currently exist for managing ASRP searches.

When creating custom properties that are searchable, it is necessary to adhere to the naming requirements.

MSRP Searches

For MSRP, UGC is stored in MongoDB configured to use Solr for searching. UGC will not be visible in CRX, but moderation is available from both the author and publish environments.

Regarding MSRP and Solr :

the embedded Solr for the AEM platform is not used for MSRP

if using a remote Solr for the AEM platform, it may be shared with MSRP, but they should use different collections

Solr may be configured for standard search or for multilingual search (MLS)

When creating custom properties that are searchable, it is necessary to adhere to the naming requirements.

JSRP Searches

For JSRP, UGC is stored in Oak and is visible only in the repository of the AEM author or publish instance on which it was entered.

Since UGC is typically entered in the publish environment, for multi-publisher production systems, it is necessary to configure a publish cluster, not a publish farm, so that the entered content is visible from all publishers.

For JSRP, UGC entered in the publish environment will never be visible in the author environment. Thus all moderation tasks take place in the publish environment.

Oak Indexing

While Oak indices are not automatically created for the AEM platform search, as of AEM 6.2 they have been added for AEM Communities to improve performance and provide support for pagination when presenting UGC search results.

If custom properties are in use and searches are slow, then additional indices would need to be created for the custom properties to make them more performant. To maintain portability, adhere to the naming requirements when creating custom properties that are searchable.