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.
Watch a video from the Mini Masterclass series provided by Bloomreach Academy which will help you understand the concepts behind and the working of generating Relevant results:
Sign up for the Mini Masterclass
Check out more free content from the [Discovery Mini Masterclass](🔗). Walk through some practical examples, learn valuable tips on how to reap the maximum benefits of Bloomreach services.
## 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. Work with your Bloomreach representative to designate specific fields as non-searchable, for example, you may designate fields that contain words/phrases that do not represent what the product is.
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|
|Description||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.<br><br> <br>Men's hoodie <br>Slim fit <br>Front pouch pocket <br>8.4 oz. PFD knit like woven <br>100% cotton <br>Imported <br>This item runs small. Please size accordingly.|
|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 above search 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:
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. Synonyms 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 "_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:
|Column Title||Column Title||Column Title||Column Title|
|**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:
|Column Title||Column Title|
|1||The expanded query uses the following criteria to match products, which in turn must have the following keywords somewhere in the searchable fields:<br> <li> men or male </li> <li>dark blue or navy </li> <li> hoodie or outerwear </li>|
|2||Looking at the product information, we see that this criteria is fulfilled:<br> <li> male matches the searchable **Gender** field</li> <li> navy matches the searchable **Color** and **Product Name** fields</li><li>hoodie matches the **Product Name** and **Categories** fields, and outerwear also matches the **Categories** field</li>|
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 were disabled, then the product would not have been a match since neither "dark blue" nor "dark" are in the searchable product information. However, if you disable the hoodie ->outerwear synonym, then the product would still match because "hoodie" already matches the product.
There are several types of synonyms that get applied:
User-generated synonyms: Synonyms that your team uploads 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 terminology than how it has been described in your catalog.
If you don't carry the specific products your customer is searching for, synonyms can be a quick and easy way to reduce No Results Found pages on your site and instead return "similar" products that the user can then browse through.
Bloomreach automatically applies stemming to search queries, data that is processed from the feed and global synonyms. Bloomreach utilizes an industry standard stemmer, which result in different forms of the same root. i.e. "shirt" \<--> "shirts", "dress" \<--> "dresses", "top" \<--> "tops".
For Bloomreach-generated synonyms, the stemming process is handled outside of the dashboard, so users should not expect to see multiple entries for a single term in the dashboard Thesaurus tool (i.e. "stemmed" versions of the synonym term).
### Spell Correct
The Spell Correct 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 that 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", the 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.
Visit this [guide](🔗) to learn more about our Spell Correct algorithms.
### Query Relaxation
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 spellcorrect, 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.
Visit this [guide](🔗) to learn more about our Query Relaxation algorithms.
### **Special Characters**
All non-alphanumeric characters (any character other than 0-9, and A-Z) are considered special characters. Bloomreach treats special characters as blank spaces by default and ignores accents (for example, "résumé" would be treated as "resume"). This applies to Search, Synonyms, and Autosuggest.