Visual Search
Traditional e-commerce search matches keywords. Refine understands what products look like. When you search for “floral midi dress,” Refine:- Understands the text — semantic understanding of “floral,” “midi,” and “dress”
- Analyzes visual features — patterns, colors, silhouettes from product images
- Combines both signals — the
visualWeightparameter controls the balance
Catalogs
A catalog is a collection of products that share a search index. Most stores have one catalog, but you might use multiple for:- Separate indexes per locale (US, EU, APAC)
- B2B vs B2C product sets
- Multiple brands under one organization
Visual Embeddings
When you upload a product, Refine generates a visual embedding — a numerical representation of what the product looks like. These embeddings power:- Visual similarity — finding products that look alike
- Image search — matching uploaded photos to your catalog
- Visual weight — the visual component of text search
Surfaces and Sources
When tracking events, you specify where the products appeared and how they got there.Surface
The UI location where products are displayed:| Surface | Description |
|---|---|
search_results | Main search results page |
product_page | Product detail page recommendations |
home_page | Homepage recommendations |
cart_page | Cart page cross-sells |
category_page | Category/PLP pages |
checkout | Checkout page suggestions |
Source
How the products were generated:| Source | Description |
|---|---|
text-search | Text search results |
image-search | Image search results |
similar-items | Similar product recommendations |
visitor-recs | Visitor-based recommendations |
user-recs | User-based recommendations |
plp | Product listing page |
Identity Hierarchy
Refine tracks three levels of identity:1
Visitor ID
Auto-generated, persisted in localStorage. Survives sessions but not device changes. Every user starts as a visitor.
2
Session ID
Auto-generated per browsing session. Expires after 30 minutes of inactivity (configurable).
3
User ID
Your identifier, set via
refine.identify(). Links visitor behavior to a known user account.