skip to content

In a marketplace serving both a browse feed and a typed product search, what does the typed query change about the candidate set?

level: juniorimportance: must knowfreq 64%

answer

  1. the stages are the same; stage one differs
  2. constraint, not a model feature
  3. resolved before anything is scored
  4. feed must invent the intent
  5. recall ceiling moves to query interpretation

basics

~20 s

A typed query is a retrieval constraint applied before any model runs, so the ranker only sees items that already match the stated intent. A browse feed has no such constraint and must manufacture candidates from the viewer's profile and context.

solid answer

~50 s

Both surfaces run the same funnel — cheap retrieval, a heavy scoring stage on the survivors, a final list edit — but the first stage is handed different things. On the typed search surface the query and any ticked facets are resolved **inside retrieval**, so the candidate set is already about the right thing and the scoring stage only has to order eligible items. On the browse feed there is no stated intent, so retrieval has to build candidates out of recent views, session context, trending items and new inventory, usually from several sources at once. That makes the feed's pool wider and lower-precision, and pushes more of the work onto scoring. It also moves the recall ceiling: the feed fails when a source never generated the item, search fails when the query was interpreted more narrowly than the shopper meant.

go deeper

for a junior

Remember the order: the query narrows the candidate set first, then the model ranks what survived. Nothing excluded at retrieval can appear on the page.

for a middle

Explain why a constraint applied inside retrieval is cheap while the same idea applied as a model feature is not, and why that moves the recall ceiling onto query interpretation.

for a senior

Show that a relevance complaint on search is usually a retrieval bug, not a ranker bug, and say how you would separate the two before anyone retrains a model.

for a principal

Frame feed, broad query and precise query as one intent-strength spectrum served by one funnel with per-surface budgets, and be explicit about what a second funnel would cost in duplicated operations.

## Two surfaces, one funnel A marketplace that shows a browse feed on its home surface and a typed product search over the same catalogue usually runs **one funnel** for both: a cheap **retrieval tier** that produces a few hundred to a few thousand candidates, a heavier **scoring stage** that ranks only those survivors, and a final list-editing pass. The boxes on the whiteboard are the same. What changes is what the first box is given to work with. ## What the typed query does An explicit query — plus whatever facets the shopper ticked — behaves as a **constraint on retrieval**, not as one more input feature to the ranking model: - It is resolved **before** any model scores anything, so items that fail a hard constraint are never assembled into the candidate set at all. - It is **cheap to apply**, because the retrieval tier is already an index lookup and the constraint rides along with the lookup. - It is **stated by the user**, so getting it wrong is visible. Someone who typed `waterproof hiking boots size 44` can see immediately that slot three is a sandal. The consequence for the rest of the funnel is that the scoring stage starts from a pool that is already roughly on-intent. Its job narrows to *ordering items that are all plausible*, which is why a query surface can often hit page quality with a smaller shortlist than a feed needs. ## What the browse feed has to do instead The feed has no assertion to work from, so retrieval has to **manufacture** an intent out of what is known about the viewer: recent views and purchases, the session's context, the viewer's segment, what is trending, what inventory is new. - Several retrieval sources run in parallel and their outputs are merged, because no single source covers the whole of "what might interest this person". - The candidate pool is **wider and lower-precision**, so the scoring stage carries more of the burden of being right. - A mediocre feed item is a wasted slot rather than a contradiction of something the shopper said out loud. ## Where each surface's recall ceiling sits | | browse feed | typed product search | |---|---|---| | what bounds retrieval | the profile and context signals available | how the query was interpreted | | typical retrieval failure | the viewer's real interest was never a source | the derived constraint was tighter than intended | | the scoring stage's job | separate interesting from uninteresting | order items that are already eligible | | a wrong item on the page | a wasted slot | a visible contradiction of stated intent | This is why the surfaces fail differently. A feed's recall problem is "we never generated that candidate"; a search surface's recall problem is "the constraint we derived from the query excluded the right item" — a misparsed attribute, an over-eager facet, a spelling the index did not fold. Both are **retrieval-tier** bugs, and neither is fixable by a better scoring model, because the scoring model never sees what retrieval did not produce. That single sentence is most of the value of drawing the funnel as stages in the first place. ## What this changes downstream Because the constraint lands first, every later stage inherits it: 1. **Shortlist budget.** A query surface can spend a smaller shortlist on the heavy scoring stage, because the pool is already relevant; a feed usually needs a bigger one to reach the same page quality. 2. **Exploration.** A feed can afford a slot on something speculative. A query surface has far less room, because the shopper has already said what they want. 3. **The empty case.** A query can legitimately have no good answer in the catalogue, so the search surface needs a relevance cutoff. The feed has no stated intent to contradict and almost always has something plausible to show. 4. **Evaluation.** A click on the feed and a click on a search result do not mean the same thing, so the two surfaces cannot honestly be judged by one pooled number. ## The nuance an interviewer listens for The tidy version of this answer is "search filters, feed recommends", and it is not quite right. Two refinements matter. First, a query is not uniformly a hard filter: ticked facets usually are hard, while free-text terms are usually **soft** — a partial or relaxed match is still a legitimate candidate — and a system that treats every typed word as a hard requirement returns nothing far too often. Second, the feed is not intent-free; it is **weak, inferred intent**. A good design treats the browse feed, a broad query and a precise query as one spectrum of intent strength, with the same funnel tuned differently along it, rather than as two unrelated products that happen to share a catalogue.

  • If the shopper's query excluded the item they wanted, can a better scoring model recover it?
    No. The scoring stage only ever ranks what retrieval produced, so an item excluded by the query constraint is unreachable no matter how good the ranker is. That failure has to be fixed in the retrieval tier — softer matching on free-text terms, spelling and synonym folding, or a relaxation pass — and it is why recall is measured at retrieval and precision at scoring.
  • Does the browse feed really have no intent signal at all?
    It has weak, inferred intent rather than none: the last few items viewed, the current session's category, the viewer's segment. The difference is that inferred intent is a ranking input the model may overrule, while a typed query and its facets are constraints the funnel applies before scoring. Treating the two surfaces as one spectrum of intent strength is the design that scales.
  • Why can a query surface get away with a smaller shortlist into the scoring stage?
    Because the constraint already removed the off-intent items, so the marginal value of the 400th candidate is low — it is another eligible item, not a first eligible item. A feed's pool is lower precision, so a larger shortlist genuinely buys page quality. Sizing the shortlist per surface, not once globally, is the point.

saying these in an interview costs you the question

  • Treating the typed query as just another feature fed to the ranking model
  • Claiming a better ranker can surface items retrieval never returned
  • Assuming the browse feed and the search page need separate funnels end to end
  • Saying the feed has no intent signal whatsoever
  • Treating every free-text term as a hard requirement on retrieval