GLOSSARY

Search Prefix

Prefix search matches results that start with what the user has typed. It powers fast, type-ahead suggestions and instant findability.

What is Search Prefix?

Search prefix (or prefix search) returns matches where a field begins with the user’s input—e.g., typing “air m” surfaces “air max 270.” It’s the core of autocomplete and as-you-type experiences.

How It Works (quick)

  • Indexing options:
    • Edge n-grams (e.g., “a”, “ai”, “air”…).
    • Prefix trees/FST/tries specialized for completion.
    • Prefix fields separate from full-text fields.
  • Querying: Apply prefix to specific fields (title, brand, category); gate by min length (e.g., 2–3 chars).
  • Ranking: Blend prefix score with popularity, recentness, and business signals; de-dup near-identical suggestions.

Why It Matters in E-commerce

  • Speed to intent: Fewer keystrokes to viable results and categories.
  • Error prevention: Early guidance reduces typos and dead-end queries.
  • Merchandising: Surface collections, brands, and policies as users type.

Best Practices

  • Separate completion index: Keep prefix logic out of main ranking fields.
  • Min/Max guards: Trigger after 2–3 chars; limit suggestions (5–10).
  • Locale aware: Normalize accents/diacritics; handle hyphen variants (gore-tex/gore tex).
  • No fuzz on codes: Disable fuzziness on SKU/MPN prefixes; offer a dedicated SKU mode.
  • Diversity: Mix results: products, categories, brands, help topics.
  • Telemetry: Track keystrokes/query, suggestion CTR, reformulations.

Challenges

  • Over-inclusive n-grams, multilingual tokenization, popularity bias drowning niche items.

Examples

  • Typing “magi” → “MagSafe charger,” “magnesium bottle,” “gift cards (help).”
  • Typing “air” → brand/category suggestions + top products with phrase hits.

Summary

Prefix search makes autocomplete feel instant and helpful. Use a dedicated completion index, sensible triggers, localization, and diverse suggestions.

FAQ

Prefix vs substring search?

Prefix matches from the start; substring matches anywhere (costlier—use sparingly).

Do I need both n-grams and tries?

Tries/FSTs are efficient; edge n-grams are simple. Choose per stack.