How Search Works
Follow the search request, indexing and rendering path, and validate it for your store.
How Search Works
FilterIQ is designed for responsive product discovery. This page explains the request, indexing and rendering path. Actual timing depends on the catalogue, network, theme, service conditions and configuration.
Architecture Overview
Shopper types query
↓
Theme App Extension (JavaScript)
↓
App Proxy (/apps/search-filter)
↓
Backend API Server
↓
Search Engine
↓
Results returned
↓
Results rendered in storefront
How a Search Query Flows
- Shopper types in the search bar — The Theme App Extension waits for the configured trigger length and debounce; input delay is separate from request and rendering time
- Request goes through Shopify App Proxy — The extension uses the configured proxy on the store's Shopify domain, with identity established through verified Shopify context
- Backend processes the query — Our backend validates the request, applies any merchandising rules, and forwards the query to the search engine
- Search engine returns results — The search engine matches products using a combination of relevance algorithms (see below) and returns ranked results
- Results are rendered — The Theme App Extension displays product cards with images, titles, prices, and variant information
Search Features
Typo Tolerance
Typo tolerance is configurable. Test misspellings found in your own search data, including short terms, brands and SKUs where an unwanted correction could harm relevance. A spelling variation does not guarantee the intended product will match.
Synonym Support
Define and review synonym pairs where the terms have the intended meaning in your catalogue. Example candidates include:
- "hoodie" ↔ "sweatshirt"
- "sofa" ↔ "couch"
- "sneakers" ↔ "trainers"
Manage synonyms in the app dashboard under Search > Synonyms.
AI-assisted analysis can propose catalogue-relevant pairs, but a proposal is not an active synonym map. Review the evidence, approve the intended pairs and test the resulting products before publishing changes.
Searchable Attributes
Review which fields are available in your synced catalogue and their configured search priority. The fields below are examples to inspect; actual inclusion depends on configuration and coverage:
| Field | Validation focus |
|---|---|
| Product title | Exact product-name and partial-title queries |
| Tags and product type | Store vocabulary and internal-only labels |
| Vendor | Brand queries and similarly named products |
| Description | Relevant matches versus incidental wording |
| Variant options | Correct sizes, colours and product association |
| Configured metafields | Source type, data coverage and intended searchable values |
| SKU | Exact identifiers and unwanted typo corrections |
You can adjust the relative weights in Search > Configuration > Searchable Attributes.
Ranking Rules
Review the configured ranking rules and sort order. Criteria used by the search engine include:
- Typo — Exact matches rank higher than typo-corrected matches
- Words — Results matching more search terms rank higher
- Proximity — Results where search terms appear closer together rank higher
- Attribute — Matches in higher-weighted fields (title > description) rank higher
- Sort — Default sort order or any custom sort applied
- Exactness — Exact phrase matches rank higher than partial matches
Autocomplete
As shoppers type, the search bar shows autocomplete suggestions:
- Product suggestions — Matching products, limited by the widget configuration
- Query suggestions — Common search terms that match the partial input
- Category suggestions — Matching product types or collections
Trigger length, debounce and result counts are configurable. The widget's base defaults include a one-character trigger and a 150ms debounce; check the effective settings in Autocomplete. A debounce value is not an end-to-end latency promise.
Product Indexing
Initial Sync
After the accepted installation starts syncing, check status, errors and indexed product coverage. Completion depends on the catalogue, plan limits, upstream delivery and service conditions. Confirm representative products are searchable before publishing the storefront integration.
Ongoing Sync
Products are kept in sync via Shopify webhooks:
| Event | Sync Behavior |
|---|---|
| Product created | Queued for indexing; verify completion and coverage |
| Product updated | Queued for re-indexing; check the changed values in results |
| Product deleted | Removal is processed; verify that the product no longer appears |
| Variant added/updated | Parent product re-indexed |
| Inventory change | Product inventory data updated |
| Collection updated | Collection associations updated |
What Gets Indexed
For each product, we index:
- Title, description, tags, type, vendor
- All variant information (title, SKU, price, compare-at price, inventory)
- Images (URLs for display in search results)
- Metafields (configured ones only)
- Collection memberships
- Published status
Performance
- Measure the deployed path from input to usable results, including debounce, network and rendering.
- Record catalogue size, theme/version, query set and cold/warm conditions alongside timings.
- Include p50, p95 and p99 measurements; a single fast response does not describe the experience under load.
- Confirm service limits and test loading/error recovery at representative traffic levels. No unlimited-concurrency guarantee is made here.
Limitations
- Search scope: Only published products are searchable (draft products are excluded by default, configurable via merchandising)
- Language: Confirm supported languages and test locale-specific vocabulary. Locale-aware synonym suggestions may be available when published-locale data is available; they do not establish automatic transliteration or stop-word handling for every language.
- Rich content: Product descriptions are indexed as plain text (HTML tags are stripped)