Share the article
A large product catalog is only beneficial if shoppers can find exactly what they are looking for on your website. Any unnecessary hurdles between search and checkout can cost you purchases.
Decision-makers often react by adding more marketplace functionalities, like filters, ranking logic, merchandising rules, personalization, and AI-powered search and suggestions.
These changes might work for some shoppers, but more functionality doesn't mean better discovery for specific shopper intent. As a matter of fact, too many added functions without a clear understanding of what makes shoppers abandon their carts can work against you.
This guide is for e-commerce founders, decision-makers, and engineering professionals to help them build a framework for their product search. We will use Meilisearch and real e-commerce marketplace implementations as examples.
Get search, filtering, and ranking right first
Before investing in personalization, recommendations, or vector search, your team first needs the following three basic layers.
Make the right products searchable
One of the most basic e-commerce failures is making a product available in your store's catalog, yet shoppers can't find it when they perform a search. No amount of incentives can help your marketplace if the product is never visible in search results.
Bookshop.org is a good example of product searchability with user search intent in mind.
For example, a shopper looking for a specific book might type an author, a book title, a genre, or even an ISBN into search to find it.
Similarly, an electronics shopper might type in a model number or technical specification.
So the first step is to determine how your customers search for products.
Once you know the most commonly used user queries, you can determine the searchable attributes.
Set up identifiers for indexing and make them a part of search queries.
Beware of putting too much into search queries, like long descriptions or internal corporate tags, which can produce accidental matches.
The more incorrect matches, the more likely the product a user is searching for is pushed down the list.
Prioritize attributes too. For example, a customer query matching a title should be prioritized over phrases embedded in descriptions. Creating relevant sort orders will produce better results.
Users make typos sometimes, so your search logic should be able to handle them.
For example, a search for 'Toni Morisson' should still find books by 'Toni Morrison' and correct the typo in logic flows.
Synonyms should also be considered. A user might type 'sci fi' instead of 'science fiction.'
Ranking prioritization was a pain point for Bookshop until they migrated to Meilisearch. Bookshop used Elasticsearch originally, but it required too much tuning for their eight-person engineering team.
With Meilisearch, even non-developers can work with ranking rules. Bookshop's result was a 43% increase in search-based purchases, with one in five customers finding and buying the book they searched for.
Use facets that match how customers actually shop
Customers care about specific aspects of a product. For example, a laptop shopper might search for products with at least 16GB of RAM and a specific screen size, but a dress shopper might search for a specific size or fabric.
You should make these search phrases available, but they should be standardized. For example, a navy blue dress might be labeled as 'navy blue,' 'navy,' 'NVY,' or just 'blue.' You can standardize all these values to a single value like 'NVY' or 'Navy Blue.'
Instead of starting with the schema, meaning the list of product fields you load into the search engine and how each one is configured (searchable, filterable, or sortable) first decide which attributes are helpful for shoppers.
Meilisearch's filterable attributes support this directly and let you choose more granular approaches. Teams can decide per attribute whether it needs equality filters, range comparisons for price or ratings, or facet search, so each field does only the work it needs.
When a user submits a search query, request only the facets related to the current category using the facets parameter.

facetDistribution then returns counts only for those attributes, while facetStats provides the min and max of numeric fields, which you can use to set the bounds of a price slider.
High-cardinality facets require different engineering. Instead of showing 800 brands, order values with sortFacetValuesBy, cap them with maxValuesPerFacet, and let buyers type a brand name into facet search.
You can also combine AND and OR filter expressions to give users more control. Since selecting one value normally collapses the counts for the rest of its group, build disjunctive facets with multi-search.
Control which products appear first
Once shoppers can find and narrow their search to products that interest them, the next challenge is making sure the right products appear at the top.
Meilisearch handles this in three layers: ranking rules decide text relevance, business ranking adds commercial signals, and curation lets your team override results for specific products.
Ranking rules: text relevance
Relevance is how an e-commerce store ranks a search result against the shopper's query.
In Meilisearch, ranking rules calculate it as a bucket sort. The first rule sorts all matching products into groups; each later rule only breaks ties within those groups, and once a rule separates two products, later rules can't reorder them.
That makes the order of the rules the main lever you control.
There are seven built-in rules: words ranks products that match the most query terms first, typo prefers fewer typos, and proximity prefers matched terms that appear close together. attributeRank favors matches in more important fields, and wordPosition favors matches nearer the start of a field. sort applies a shopper's chosen sort order, and exactness favors words identical to the query.
To use them in a store, start with attribute importance. List searchableAttributes in priority order, such as ["name", "brand", "category", "description"] so a match in the product name outranks one in the description.
With the default ["*"], every field carries the same weight.
Then place sort carefully. It only activates when the query includes the sort parameter, such as price:asc. Putting it after words, typo, and proximity balances relevance and sorting, while moving it higher gives strict price ordering at the cost of relevance.
Apply the order with the update ranking rules endpoint:
Business ranking: commercial signals
Business ranking reflects signals like product popularity, ratings, availability, or recency. Custom ranking rules add these signals to the list of rules, for example by prioritizing products with higher sales or ratings.
Place them after the built-in relevance rules, so they apply to already-good matches instead of overriding the query:
Suppose a shopper searches for 'running shoes.' The term is vague and could match 1,000 products. Relevance alone would struggle to pick the right ones, but business ranking adds signals like availability, reviews, and brand popularity, so in-stock, well-reviewed products rank above out-of-stock, poorly reviewed ones.
Curation: merchandising control
Curation narrows results further by boosting products the store wants to promote. For example, if marketing wants to promote a new spring edition of a product, curation can place it at the top for visibility and sales.
For curation, Meilisearch offers search rules, currently an experimental feature. A rule can pin a product at a fixed position, or raise or lower a product's relevance within organic results. Rules can be triggered by words in the query, an empty search box, a selected facet value, or a time window, so the spring promotion rule expires automatically.
Pinned products still respect active filters, so a curated item won't appear where a shopper's filters exclude it.

Add advanced discovery only when it solves a clear problem
After you resolve issues with searchability, facets, and ranking, you can then move on to advanced discovery.
This includes capabilities such as personalization, recommendations, and introducing semantic or hybrid search, either powered by AI or not.
Remember that you shouldn't approach new features just to add something new. Instead, you want to add features that solve specific problems.
Personalize results when you have useful user context
For personalization, ask yourself this question: should two users who type in the same query see the same order of products?

Let's use the bookstore example again. Suppose that two users are looking for books on dinosaurs. The first user spent a year looking for picture books aimed at toddlers. The second user spent a year buying academic books at a college level.
In this scenario, the users are looking for the same topic, but they should not get the same books in their results. This is why personalization is important.
Personalization requires input from the website or application to return the right results. When a user queries the system, it must take into account the user's purchase history, browsing history, saved preferences, and account details. Without the extra input, the system can't infer the user's intent.
Meilisearch's personalization builds a short string profile of a shopper and sends it with the search request.
First, Meilisearch retrieves matching products for the user, then a reranking model reorders them based on the user's profile and preferences.
Personalization techniques change the order of products in the final results, but users still find what they are looking for.
Use recommendations to extend discovery beyond the search box
Recommendations and personalization are often used interchangeably, but they are different concepts. Personalization is about the shopper's preferences. Recommendations focus on products, such as similar items, other products the shopper might consider, and additional discovery when a user finds a product.
Recommendations are used to upsell other products and increase the average sale for your store. They can also salvage a shopper by recommending another product if the one the user found isn't quite what they want.
Using the bookstore example again, let's say that a user lands on a product page for a thriller title. It isn't quite what they want to purchase, so a list of recommended titles could still make a sale. Similar books could be from the same author, have a similar tone but different authors, or show titles similar to those popular with other buyers.
Meilisearch supports recommendations with the similar documents endpoint. Recommendations start with the ID for the product that a user is viewing.
Then, Meilisearch returns products closest to the currently viewed product's meaning based on embeddings generated by a configured embedder.
Your team controls what products are similar using the embedder's document template, which defines the product fields that get embedded. Using the bookstore example, your team would build a template based on genre, themes, and descriptions of similar products.
Make sure to keep recommendations practical instead of throwing every possible option at the user. A short list of strongly similar products is much better than a long list of loosely related products. This strategy will help with sales for anonymous shoppers browsing your store.
Use semantic or hybrid search where keyword matching falls short
Some queries describe a need rather than a product.
For example, a shopper might search for 'comfortable shoes for standing all day.' The 'need' is the search intent, but this intent doesn't usually show up in product descriptions. A shoe product might just have 'cushioned soles' or 'all-day support' in its description.
Semantic results, which match based on meaning rather than exact words, solve this problem.
But teams should test search results rather than build semantic search into every query. Semantic search is best for intent-heavy queries, descriptive queries, or problem-based searches.
Full-text search handles queries with exact names or model numbers just fine.
Traffic logs should show you the queries used and help you figure out which type of search is needed for each query.
Hybrid search is often the preferred middle ground between full-text and semantic searches. It combines full-text and semantic search in a single query, so exact matches still rank first, but descriptive queries are sent for semantic retrieval.
In Meilisearch, a semantic ratio balances the two options, and your team can tune it against real queries.
Meilisearch also gives teams options to manage the complexities of semantic searches, including the ability to choose embedders based on cost and speed. You can also supply your own embeddings or use different providers for indexing and search.
Measure whether product discovery is actually helping people buy
Every change in this guide is a best guess until you measure it, and no single metric will tell you whether it worked.
Discovery usually breaks down at one of three points (before shoppers see results, after they see results, or after they click), so track all three to see where you're losing them.
Meilisearch analytics counts a search by intent, not keystroke, so a shopper typing 'run,' 'runn,' and 'running shoes' registers as one search.
Out of the box, it shows which searches return nothing, so you can spot dead ends before shoppers even see results.
If your application sends click events that include each result's position, you also get click-through rate and average click position.
A low click-through rate or a high average position points back to your ranking rules.
Add conversion events for purchases to see what share of searches end in a sale.
| Metric | A problem here may mean... | What to investigate |
|---|---|---|
| High no-result rate | Catalog/query terminology mismatch | Synonyms, searchable fields, missing catalog data |
| Low CTR | Results aren't relevant | Searchable attribute order, ranking rules, result card content (images, price, key attributes) |
| High average click position (clicks land far from the top) | Relevant products are being outranked by weaker matches | Ranking rule order, custom ranking weight, search rules, variant duplication |
| Low conversion after search | Shoppers find products and view them but don't buy | Stock and availability filters, pricing, product page quality |
| High latency | Relevance actions are costing speed | Semantic or hybrid search settings, embedder choice, personalization result limits, facet requests |
Build product discovery around the shopping journey, not the feature list
A large catalog only converts shoppers to customers when shoppers find the right product. E-commerce stores need good search, then filtering, then ranking, and then advanced discovery.
Every step of the process should be monitored and measured for continued improvement.
Before you turn to complex solutions, start with the foundational problems. Once the foundations are in place, move on to personalization, recommendations, and semantic search when needed. Measure outcomes once everything is in place, and test changes with real traffic.
Test your product discovery stack with Meilisearch
With Meilisearch, e-commerce teams can index their real catalog, tune relevance, and try more advanced discovery against actual queries. Because Meilisearch runs the infrastructure, engineering time goes into improving the shopping experience rather than maintaining a search cluster.




