For a product to be returned as part of the results for a particular query, each of the keywords within the query need to match a field within the searchable product information. Let's take a deep-dive into how Bloomreach uses the query to return a set of products.
Particular product fields are searchable
Searchable product information is driven by the data provided to the Bloomreach platform through a product feed. By default, Bloomreach will consider all fields searchable. However, if you are aware of specific fields with noisy data they can be made non-searchable by your Bloomreach representative.
The Bloomreach system then builds an internal index of your product catalog with fields that contain all the information about the product. When Bloomreach receives a search request for a query, the query terms are looked up in this index (non-searchable fields are ignored).
Consider this sample entry for a hoodie. Here are the fields that are typically searchable:
|Categories||Apparel, Outerwear, Hoodies|
Our logo hoodie is a must-have staple for every True Religion fan. A bold, iconic contrast stitch detail highlights the construction and adds to the premium look and feel of this quality garment. Great on its own and equally stylish with layers as the seasons change.
|Size||sm, med, lge|
These are the fields that are you might wish to make non-searchable to avoid noisy results:
|Promotional text||Summer clearance! Only 3 in stock!|
|Flags||"Available in other colors"|
In this scenario, for a query "blue hoodie", we would look within the searchable fields and find a match on both terms "blue" (in color field) and "hoodie" (in name and description field). We would not look for these terms in the Promotional text and Flags fields that were marked non-searchable.
The site visitor's query is interpreted and expanded
A query is the user-entered search term after going through the Bloomreach search term interpretation logic. The Bloomreach system modifies the search term in order to return relevant results while also minimizing null or zero results. The query is modified in the following ways:
Site search engines need to handle the variability in how users describe a product. While looking for a dress to wear to a formal event, one site visitor might search for all of the following items with similar intent:
- evening dress
- elegant dresses
- formal gowns
- long night dress
It is the search engine’s job to find the relevant products in the catalog regardless of how they are described. The most common way to do this is by applying synonyms. A synonym is the correct way to tell the system that elegant dress and evening dress are two ways of looking for the same products.
Let’s see how this works during a search. A shopper goes to a website to find a hoodie, and types the phrase, men dark blue hoodie, in the search box. The search engine has synonyms configured as follows:
- dark blue has the synonym, navy
- men has the synonym, male
- hoodie has the synonym, outerwear
Applying these synonyms to the user-entered query, we can expand the query like this:
|Expanded||men or male||dark blue or navy||hoodie or outerwear|
When searching for products in the search results, applying the second synonym allows the system to show navy products in addition to those with dark blue as an attribute. It also matches products with the male attribute in addition to products with men in it.
Let’s walk through an example. Suppose the user enters this query: men dark blue hoodie.
Here's the process that Bloomreach uses to retrieve products for this query:
The expanded query uses the following criteria to match products, which in turn must have the following keywords somewhere in the searchable fields:
Looking at the product information, we see that this criteria is fulfilled:
Since all the criteria for the query to match the product were fulfilled, the product is eligible to be in the search results. However, if the dark blue to navy synonym is disabled, then the product doesn't match because neither dark blue nor dark are in the searchable product information. However, if you disable the hoodie to outerwear synonym, then the product still matches because hoodie already matches the product.
There are several types of synonyms that get applied:
- User-generated synonyms: Synonyms which your team can add through the Bloomreach Dashboard
- Bloomreach global synonyms: Synonyms that Bloomreach has learned and applied globally across customers
- Query Rewrite synonyms: Synonyms that Bloomreach has learned specifically from user behavior data on your site. When users frequently refine queries or use them interchangeably (e.g. nightstand ↔ end table), Bloomreach learns and will automatically add these as synonyms.
Synonyms help expand the query and return relevant products even when customers are looking for your product using different language than how it has been described by your product catalog. They also help return related products (rather than a zero result) when you don't carry the specific product your customer is looking for.
Bloomreach automatically applies stemming to search queries, data that is processed from the feed and global synonyms. These stems or canonicals are typically used in the same context. Bloomreach utilizes an industry standard stemmer, which result in different forms of the same root. i.e. "shirt" <--> "shirts", "dress" <--> "dresses", "top" <--> "tops".
For global synonyms, important to note that stemming is done outside of the thesuraus in the Bloomreach dashboard so users will not see the stemming process within the dashboard.
The Autocorrect feature reduces the number of null result queries due to spelling errors and reduces the burden on the merchandising team of having to manually add a bunch of spelling errors as synonyms with the correct spelling.
When the Bloomreach system receives a query which it cannot find a match for in your product catalog, it will automatically check for spelling errors. For example, if a user types in "dreses" Bloomreach system will check if any products match that query. If no products are a match, then the system will check to see if it is a spelling error. In this case, the word "dreses" might get corrected to "dresses", if Bloomreach found no products with the word "dreses" in the product details.
Typically, an e-commerce search engine can be “broken” by long tail queries that do not have an exact product match, giving the shopper zero results despite carrying relevant products. Bloomreach fixes this problem by discerning the intent of the shopper and treating some of the keywords as “optional” (in other words, relaxing the query) while recognizing the actual product type that the shopper is seeking. The result is significantly fewer queries with zero results - 40-50% less in some cases - and more happy customers.
If a query is returning zero results after it is processed with synonyms and autocorrect, the query will be relaxed. To give you an example, for a query "purell hand sanitizers" - if purell products are out of stock and there are no products matching this exact query, then Bloomreach identifies that the intent is for "hand sanitizers" and will show other in stock hand sanitizers.