Collections with Search Blueprints (BETA) in DXP 7.4 U88+

Automatically register a collection provider for each search blueprint. By displaying the blueprint's results in a collection display fragment, you can leverage search to return your assets dynamically, and reap the benefits of the fragments toolbox to lay out the page.

What is a Collection Provider?

Collection providers group items into collections for display on your pages. Several are available out-of-the-box, or you can create them using the Information Framework to group items into the collections you need.

Learn more at Collection Providers.

What is Blueprints?

People can use Search Blueprints to customize the search query and personalize their digital experiences. Boost, hide, or filter results by various factors like proximity, categories, tags, user segment; provide personalized and context aware search results and much more.

Combining Blueprints and Collections: Showing future events

When you create a search blueprint, a collection provider is registered automatically with the same title as the blueprint (similar to Object definitions). Assets matching the blueprint's query and configuration are added to the collection.

The returned type is AssetEntry.

Blueprint driven Collection Provider

Let's see this simple scenario: we want to create calendar events and configure a blueprint to return only events that happen in the future. Display the events on a content page using the collection display fragment.

  • Enable the feature via Control Panel > Instance settings > Feature Flags > Beta: Collections with Search Blueprints (LPS-129412) .
  • Create a page and add the Calendar widget to it.
  • Create three calendar events:
    • Past Event: configure it to happen in the next five minutes and last 15 minutes (or less).
    • Future Event 1: Make an event that starts in the future.
    • Future Event 2: Make another event that occurs in the future.

    •  
  • From the Applications menu, navigate to Search Experiences > Blueprints.
  • In the Elements tab, add a new custom element with this JSON:

    • {
         "description_i18n": {
            "en_US": "Limit results to only future events, using the endTime field."
         },
         "elementDefinition": {
            "category": "filter",
            "configuration": {
               "queryConfiguration": {
                  "queryEntries": [
                     {
                        "clauses": [
                           {
                              "context": "query",
                              "occur": "filter",
                              "query": {
                                 "range": {
                                    "endTime": {
                                       "gt": "${time.current_date|date_format=timestamp}"
                                    }
                                 }
                              }
                           }
                        ]
                     }
                  ]
               }
            },
            "icon": "filter",
            "uiConfiguration": {}
         },
         "title_i18n": {
            "en_US": "Limit Results to Future Events."
         },
         "type": 0
      }
  • In the Blueprints tab, build a blueprint to match only calendar events that are in the future:

    • Title: Enter Future Events.

    • Query Settings: select Calendar Events in Searchable Types.

    • Query Elements: add the Limit Results to Future Events element.

  • Save the blueprint.

  • From the site menu, add a content page called Upcoming Events.

  • Add the Collection Display fragment to the page and select the Future Events Collection Provider.

  • Configure the collection display fragment to show a bullet list.

  • Publish the page, and the future calendar events appear.


 

Documentation is available at Liferay Learn.

Limitations

Only content registered with Liferay's Asset Framework can be returned by the blueprints collection provider as Asset Entries. This means that currently it only supports mapping Asset Entry metadata (fields) when building a content page.

What's next

You may wonder: how is it different from Dynamic Collections? If you are familiar with that type of collections, the easiest to think of it is an advanced way of creating dynamic collections with more control over the search aspect (to find entries) to display.

Dynamic Collection Builder
 

Despite the obvious resemblance, there are noticeable differences between the Dynamic Collection builder and Blueprint's query builder, both in terms of the (low-code/no-code) configuration capabilities they provide and their user interfaces. Therefore, integrating Collections and Blueprints further and making it easier to build dynamic collections for Object Entries and structured content using Blueprints are part of the future plans.

Blueprints Query Builder​​​​​​​
 

Besides that, exploring the ability to return the actual entry (like, an Web Content Article) not Asset Entries is also on the roadmap as this limitation may hit negatively the usability of Blueprints driven collections in some projects.