Customers often have special classes of queries, such as part numbers (“abc-123”) or brand-only (“gucci”, “3M”) queries, that require different processing logic to ensure that the most relevant products are surfaced first. The **Lookups** feature allows customers with these use cases to ensure that such queries are optimized.
Unlike our default search that undergoes a lot of language processing (such as described on our [Search Recall](🔗) page), a **Lookup** is simply an exact match of any string that exists in **Lookup fields**, which are fields designated for Lookups. For example, a B2B customer might designate "mfg\_part\_number" and "distributor\_part\_number" as their Lookup fields, while a B2C customer might designate “brand” as a Lookup field.
The following screenshots show sample search results for the search query "2997-22". Without Lookups configured, the exact relevant product (outlined in blue) is returned along with 4 irrelevant products (outlined in red), which are returned in the recall set because of token matches to other searchable fields. With Lookups configured on the "part_number" field, only the exact relevant product is returned.
Note: This feature is optional. It is advisable only for those customers that have use cases where it can help.
Lookups attempt to find an exact match on any designated Lookup field before the default search process. For example, if a user searches for “LMF-00-123”, then we look for an exact match for “LMF-00-123” in the configured Lookup fields. Only products that contain exact matches to values in your Lookup fields will be returned. If no exact match is found in your Lookup fields, then a default search will be conducted.
The query processing methodology behind Lookups ensures a high level of precision when searching for such query types, such as part numbers, while remaining balanced for standard product+attribute queries, such as “Dewalt drill bits” or “black lace gucci dress”. Lookups are also designed to provide better support for special characters, reduce erroneous spell corrections, and overall reduce recall set noise from other searchable fields.
One of the ways that Lookups reduces erroneous spell corrections is by remembering values that have previously been present in Lookup fields. For example, when a part goes out of stock, rather than spell correcting a part number query to a (potentially irrelevant) part, the system will show zero results. While zero results are generally considered bad, in contexts such as B2B where precision of what end users buy is important it's better to show a null result vs. an irrelevant part.
If you have designated multiple Lookup fields, you may also specify the ranking priority of each lookup field. Lookup field ranking determines how search results are ordered: products with exact matches on higher-priority Lookup fields will appear higher in search results.
A parts distributor has two part number fields configured for Lookup: “mfg\_part\_num” and “dist\_part\_num”. This distributor knows that the majority of its users search by the “dist\_part\_num” field, so the “dist\_part\_num” field is configured with ranking Priority = 1 while the “mfg\_part\_num” field is configured with ranking Priority = 2.
Suppose there are two products, PID1 and PID2, and both have a part number of “abc-123”. However, PID1 has “abc-123” in the “dist\_part\_num” field, and PID2 has “abc-123” in the “mfg\_part\_num” field. When a user searches for “abc-123”, both PID1 and PID2 will be returned in the recall set, but PID1 will be ranked higher than PID2 since PID1 matches on the higher priority Lookup field, “dist\_part\_num”.
|Column Title||Column Title||Column Title||Column Title|
|**Lookup field**||**Ranking priority**||**Product**||**Product ranking**|
|“dist\_part\_num”||1||PID1 (“dist\_part\_num” = “abc-123”)||1|
|“mfg\_part\_num”||2||PID2 (“mfg\_part\_num” = “abc-123”)||2|
You can configure a lookup field as _searchable \_or \_non-searchable_. This means that if there are no exact matches in the lookup field, you can decide whether the same field is used for default search\* or not.
The field configuration cases are described below:
**Lookup field is made searchable:** If there is no lookup match, then use the field for default search. This is the default behavior.
**Lookup field is not searchable:** The field isn't used for default search even when there are no exact lookup matches.
\*default search is our general query processing that applies Term Match, Synonyms, Spell Check, and Query Relaxation to the query.
## How to enable this feature?
**New customers**: if you are currently integrating Bloomreach’s Search module, please speak with the Technical Services team member who has been assigned to help with your integration.
**Existing customers**: If you have already integrated Bloomreach’s Search module, then no extra integration steps are required. You can discuss whether Lookups are suitable for your use cases with your Digital Experience Manager. If you would like to enable Lookups on your account, contact [Bloomreach Support](🔗) and provide the following information:
Names of fields from your catalog that you would like to designate as Lookup fields
Ranking priority of each lookup field (you can also configure all fields to have the same ranking priority)