Systems Atlas

Chapter 2.2

Types of Queries

Not all queries are created equal. Understanding the intent category is the first step to checking the right index.


Why this matters: You heavily rank results differently based on type. A transactional query ("buy running shoes") needs product grids. An informational query ("how to run") needs articles. Getting this wrong is a catastrophic user experience failure.

Intent Distribution

This checkout breakdown shows the typical distribution of query intents on a general purpose search engine. Note that Informational queries dominate the volume, but **Transactional** queries drive the revenue.

Informational (60%)

"how to", "what is", "history of"

Navigational (20%)

"facebook", "gmail login", "youtube"

Transactional (10%)

"buy iphone", "cheap flights", "download"

Query Classification in Production

Production systems classify queries in real-time to route them appropriately. Each query type has a different primary goal, success metric, and failure state. Understanding these differences helps you build specialized handling for each type rather than treating all queries the same.

Query TypePrimary GoalSuccess MetricFailure State
InformationalAnswer user's questionTime to Result (short)Pogo-sticking (user clicks back)
NavigationalGet to specific pageTop Result CTR (~100%)User refines query
TransactionalPurchase / ConvertConversion RateZero results found
LocalFind physical place"Get Directions" clicksLocation mismatch

Deep Dive: Signal Scoring

Production systems don't just use keywords. They use multiple specialized scorers to calculate confidence for each intent type.

intent_scorers.py
class NavigationalScorer:
def score(self, query: str) -> float:
score = 0.0
# 1. Exact match with top domains
if query in self.top_10k_domains:
score += 0.8
# 2. URL patterns
if "login" in query or query.endswith(".com"):
score += 0.5
return min(score, 1.0)
class TransactionalScorer:
def score(self, query: str) -> float:
score = 0.0
# 1. Strong verbs
if any(w in query for w in ["buy", "order", "purchase"]):
score += 0.9
# 2. Price signals
if "$" in query or "price" in query:
score += 0.6
# 3. Product pattern (Brand + Category + Model)
if self.ner.has_product_structure(query):
score += 0.4
return min(score, 1.0)

Structure & Frequency

Query distribution follows a classic power law: a small number of "fat head" queries drive most of your traffic, while an infinite "long tail" of rare, specific queries makes up the rest. Each segment requires different optimization strategies caching works great for the head, but the tail needs robust query rewriting.

Fat Head Queries

Short, frequent, ambiguous. Top 20% of unique queries driving 80% of volume.

"shoes", "iphone", "pizza"
  • ✓ Use heavy caching (TTL 1h+)
  • ✓ Manual curation / Merchandising
  • ⚠ Beware of broad intent

Long Tail Queries

Long, specific, rare. The "infinite tail" where users are very precise.

"red nike running shoes size 10 discount code"
  • ✓ Rely on query rewriting
  • ✓ Relax constraints if 0 results
  • ⚠ Cache miss rate is high

The 4 Main Types

Every query falls into one of four primary categories based on user intent. Correctly classifying the type allows you to customize the entire search experience from which index to query, to how results are ranked, to what UI treatment they receive. Getting this classification wrong leads to fundamental UX failures.

Informational

"I want to know something"

Q: "capital of france"
  • Needs: Direct Answer / Knowledge Graph
  • Metrics: Time to Result (lower is better)
  • UI: Snippets, Answer Cards

Navigational

"I want to go somewhere"

Q: "youtube", "united airlines login"
  • Needs: Single correct link at #1
  • Metrics: Click through rate on #1 (should be ~100%)
  • UI: Sitelinks, "Did you mean"

Transactional

"I want to do/buy something"

Q: "cheap flights to nyc", "buy iphone 15"
  • Needs: Options, Price comparisons, Reviews
  • Metrics: Conversion Rate
  • UI: Grids, Filters, Sorting

Local

"I want something near me"

Q: "pizza near me", "plumbers open now"
  • Needs: Geolocation, Maps, Hours
  • Metrics: "Get Directions" clicks
  • UI: Map Pack, Address details

Key Takeaways

01

Classify First

You cannot rank results until you know the query type.

02

Informational

Goal: Answer. Metric: Time to Result. UI: Snippets.

03

Transactional

Goal: Purchase. Metric: Conversion. UI: Product Grids.

04

Navigational

Goal: Navigation. Metric: CTR@1. UI: Sitelinks.