New Feature Preview: Aggregation API for v3.2
Support complex search scenarios with Ibexa's brand new Aggregation API.
This is the first in a three-part preview blog series offering a sneak peek of new features included in the upcoming launch of our latest software version, v3.2, coming soon.
Whether a user is looking for relevant articles when researching or quickly browsing your online product catalog, it's a super frustrating experience to leave a website or app not having found what you're looking for. We believe the ability to offer both end-users and back-office admins powerful search options is critical for supporting seamless digital experiences. And as our customers are increasingly using Ibexa's platform to manage digital experiences across multiple channels, including content and commerce channels, the requirements for more providing more advanced search to support more complex journeys are only continuing to grow.
What is the Aggregation API?
For this latest release, we're excited to introduce our Aggregation API to support complex search scenarios. It provides a new way to build advanced search queries in your Ibexa database to deliver much more expansive search results by combining or "aggregating" different facets from the search query.
It replaces our previous Facets API, offering several new advantages when building advanced search experiences:
- The old Facets API was only able to perform searches in your database at the content level (content objects, section, etc.)
- With the new Aggregation API, a search can now be performed at the individual field level and lets you combine multiple search facets for aggregated search results
- This lets you iterate new search queries and search results to create more relevant and business-specific search experiences based on your particular customer journey
- It will help back-office search be much more compatible as you customize and extend the platform.
The feature doesn't need any extra configuration to set it up. You just need to start adding aggregations to your search queries in order to begin generating results.
If you already use Elasticsearch or Solr, the new API is designed to work with either solution to provide aggregated search results based on your existing search index.
Understanding the types of aggregations
There are two primary classifications of aggregation the new API offers:
1) Aggregations classified by the type of result:
- Term aggregation: Group by value and the count the total number of objects in each group
- Range aggregation: count the number of items with values in specified ranges
- Stats aggregation: computes stats over numeric fields: minimum, average and maximum value, count and sum of values, etc.
2) Aggregations classified by "subject":
- Content aggregation
- Location aggregation
Also, several subsets of field type-specific aggregations are available to help you search with multiple search facets. Searching with field facets is excellent for designing search when you have business-specific fields and search queries, such as custom product attributes.
Examples of how the Aggregation API can be used:
Faster product searches with faceted search navigation
When users visit a website with an extensive range of products and product categories, search filters need to go beyond basic criteria such as simple text search or limited filters such as category or brand.
In this example, we have Maison, a website selling furniture online. With the Aggregation API, they're able to offer a front-end UX with faceted search filters in for their online product catalog:
- A user visits Maison as they want to buy a new sofa
- The user also has a rough budget with a maximum price up to $2000
- They're also a conscientious type of buyer and would like to purchase a sustainably produced sofa
- Last but not least, they require a 3-seater sectional sofa with a left-arm facing chaise.
With faceted search navigation, this user can very quickly and easily refine their product search by combining different product attributes, all within the same search.
Combine content and commerce to support different stages of the customer journey in the same search experience
In the case of Maison, they're using the Ibexa platform to manage their online product catalog and e-commerce store, as well as their blog, plus a section called 'Inspirations,' with articles covering interior design trends and ideas.
- In this case, a visitor has visited the Masion website and searched for *chair* in the search bar
- Trying to anticipate the user's exact search intent here is a little tricky; which stage of their customer journey are they in:
- Early consideration stage and simple looking for some inspiration?
- Are they ready to purchase a chair?
- Are they looking for some after-sales services related to chairs, such as repairs and maintenance?
By using the Aggregation API, Maison's website can aggregate search results for chairs, displaying all items related to *chairs*, including any content items from the product catalog, blogs, or articles under the inspirations section. From here, the user can refine and narrow down their search further.
Using data from an external system to enrich searches
In this scenario, Maison has integrated the Ibexa platform with its ERP system. The ERP provides updated information on price and current stock availability to the e-commerce store.
- These two criteria can now be used as search facets by the Aggregation API
- Users can search for different products combined with up to date pricing variables and only items currently in stock and available.
This can be particularly useful for B2B vendors, who, for example, might have different pricing levels for their resellers. Or as a business buyer, looking for business-critical items to buy and they can't wait for a specific product to be back in stock for an order to be fulfilled, so they need to find an alternative product easily.
Going beyond traditional search
While search is traditionally thought about as an end-user submitting a search query in a search bar and a list of results being returned, the Aggregation API can display data in usable ways beyond this traditional search paradigm.
Displaying an average score for Product reviews
In this example, Maison created a custom content type in its Ibexa content repository called Reviews.
This content type lets site visitors give a product review and give an item a rating out of five. Using the Aggregation API, Maison's e-commerce team can take the individual ratings for a particular product and automatically calculate an average score and display it under the product listing.
We Love Your feedback
We're passionate about building products that help your digital business grow. Do you have a great idea for a feature that should be added to eZ Platform? Or just want to give us some feedback on a current feature? Head over to our Product Roadmap to submit your request or idea!