Engineering

Search and Recommendations: Helping Shoppers Find What They Want Fast

Open any grocery app and the first thing you do is search. You type a word or two, expecting the screen to fill with exactly what you had in mind. When that happens, a few taps become a full basket in under a minute. When it doesn’t, you scroll, second-guess, and sometimes give up. Grocery app search and recommendations are the systems that turn a vague intent into the right products fast, ranking what is relevant, available, and locally loved while quietly suggesting what completes the basket. At Rabbit, getting this right is one of the highest-leverage problems we work on.

Key takeaways

  • Grocery search is uniquely hard because shoppers mix Arabic and English, type brands and categories interchangeably, and expect tolerance for typos and transliteration.
  • Good ranking blends relevance with real-world signals: what is in stock right now in your dark store, and what is popular in your neighbourhood.
  • Recommendations, reorder shortcuts, and basket-completion turn single-item searches into complete, well-rounded carts.
  • Great discovery helps shoppers and brands at the same time: people find what they want, and good products get surfaced fairly.

Why grocery search is uniquely hard

Most search problems assume a shared vocabulary between the person typing and the catalogue. Groceries break that assumption constantly. The same product is a brand to one shopper, a category to another, and a colloquial nickname to a third. Someone might search for a flavour, a use case (“breakfast”), a size, or a half-remembered package colour. The query is short, the intent is rich, and the catalogue is enormous.

The bilingual, transliterated reality of the Egyptian shopper

In Egypt the challenge multiplies. A single shopper will switch between Arabic script, English, and Franco-Arabic (Arabic written in Latin letters and numbers) within the same session, sometimes within the same word. A brand name might be typed three different ways by three different people, and none of them is “wrong.” Search has to treat these as the same intent rather than three dead ends.

This is a query-understanding problem before it is a ranking problem. The system needs to normalise script and spelling, tolerate typos and missing letters, and map transliterated terms back to the canonical product. The trade-off is real: be too strict and you return nothing for a perfectly reasonable query; be too loose and you flood the screen with near-misses that erode trust. The aim is a forgiving front door that still respects what the shopper actually meant.

Ambiguous queries and synonyms

Even within one language, a word like “water” could mean a small bottle, a large pack, sparkling, or flavoured. “Milk” spans dairy, plant-based, full-fat, and condensed. Resolving this ambiguity well means understanding synonyms and relationships between products, then leaning on context, popularity, and personalisation to put the most likely intent first while keeping the alternatives one tap away. The goal is never to guess so aggressively that we hide the option the shopper wanted.

Ranking: relevance is necessary but not sufficient

A search result that is perfectly relevant but out of stock is worse than useless in quick commerce, because the entire promise is delivery in minutes from a nearby dark store. So ranking has to combine textual relevance with operational reality.

The signals that matter

  • Relevance: how well the product matches the query, accounting for synonyms, brand, category, and attributes.
  • Availability: what is actually on the shelf of the dark store that serves this address, right now. A great match the shopper can’t receive should not sit at the top.
  • Local popularity: what people in this area genuinely buy. Tastes, brands, and pack sizes vary by neighbourhood, and the catalogue is wide enough that local demand is a strong, honest signal of what to surface.
  • Personal context: what this shopper has bought or browsed before, used carefully so it helps rather than traps them in a narrow loop.

The interesting engineering is in the balance. Over-weight availability and you bury the best product behind whatever happens to be abundant. Over-weight popularity and you create a rich-get-richer effect where new or niche items never get a chance. What good looks like is a ranking that feels obvious to the shopper: the thing they wanted, in stock, near the top, with sensible neighbours.

Recommendations and reorder: from one item to a full basket

Search answers a question the shopper already asked. Recommendations answer the questions they haven’t thought to ask yet, and this is where a few taps turn into a complete cart.

Reorder and personalised suggestions

Grocery shopping is deeply repetitive. Most households buy a stable core of staples week after week. A good app remembers this and makes reordering effortless, so the routine part of the shop takes seconds and the shopper’s attention is freed for what’s new or occasional. Personalised recommendations extend that: surfacing the brand they prefer, the size they usually choose, the category they keep returning to. The trade-off to manage is freshness versus familiarity. Lean too hard on history and the app feels stale and blinkered; ignore history and it feels like it has amnesia. The right blend respects habits while leaving room for discovery.

Frequently bought together and basket completion

Some products travel in pairs. Pasta wants sauce; coffee wants milk; a recipe’s worth of ingredients tends to appear in the same carts. “Frequently bought together” and basket-completion features learn these associations from aggregate behaviour and gently surface the missing piece at the right moment. Done well, this is genuinely helpful: it saves the shopper a second search and prevents the small frustration of realising at checkout that they forgot the one thing the meal needed. Done badly, it becomes noise. The discipline is to suggest only when the association is strong and the moment is right, and to keep the additions easy to dismiss.

Helping shoppers and supporting brands at once

Discovery is a two-sided system. Shoppers want the fastest path to what they need. Brands and suppliers want their products to be found by the people who would genuinely want them. These goals align more often than they conflict, and good search and recommendations are where that alignment is built.

  • Fair surfacing means a strong product can earn visibility through relevance and real demand, not just shelf dominance.
  • Better discovery for new and local products gives shoppers more choice and gives suppliers a fairer shot at being noticed.
  • Clear demand signals from search and recommendations help us and our partners understand what neighbourhoods actually want, which in turn shapes assortment.

The line we hold is that the shopper’s experience comes first. Recommendations have to be earned by usefulness. A suggestion the shopper finds genuinely helpful is good for them and good for the brand; a suggestion that feels like an interruption fails both. Keeping that bar high is what keeps the whole system trustworthy.

Localisation as the foundation, not a feature

None of this works as an afterthought translated from somewhere else. The vocabulary, the brands, the pack sizes, the way people phrase a craving at 9pm, and the products that define a neighbourhood are all specifically Egyptian. Building search and recommendations for this market means treating bilingual, transliterated, locally-shaped queries as the default case, not an edge case. That is why these systems are part of a broader effort of building for the Egyptian consumer, and why they sit alongside the rest of how we apply AI across the stack to make quick commerce feel effortless.

Frequently asked questions

Why does grocery app search need to handle Arabic and English together?

Egyptian shoppers naturally mix Arabic script, English, and Franco-Arabic, often within a single search. A product might be typed several valid ways by different people. Search has to recognise these as the same intent, with tolerance for typos and transliteration, so that nobody hits a dead end just because of how they happened to spell a brand.

How do recommendations help me build a full basket faster?

Recommendations reduce the number of searches you have to run. Reorder shortcuts bring back your usual staples in seconds, personalised suggestions surface the brands and sizes you tend to choose, and “frequently bought together” prompts catch the item you might otherwise forget. Together they turn a one-item search into a complete, well-rounded cart with minimal effort.

Why is availability part of search ranking?

In quick commerce, everything is delivered from a nearby dark store within minutes. A product that perfectly matches your search but isn’t stocked at the store serving your address can’t actually reach you, so it shouldn’t sit at the top of the results. Ranking blends relevance with real-time availability and local popularity so the items you see are both right and ready.

Search and recommendations are how a craving becomes a delivered basket in minutes. Discover how Rabbit works.

Keep reading

Download app ⚡