Synonym Expansion

What it is

Synonym expansion automatically rewrites queries to include synonymous terms, improving recall. If a user searches for “car”, the system also retrieves “automobile”, “vehicle”, etc. Implemented as a token filter in analysis chains.

How it works

Synonym expansion occurs in query analysis:

  1. Query terms are tokenised and normalised
  2. Synonym filter maps each term to its synonyms (one-to-many or many-to-one)
  3. Resulting query includes original terms plus synonyms
  4. Boolean OR or field-value matching retrieves documents with any variant

Synonym files typically map terms bidirectionally or specify expansion direction:

  • Two-way: “car => automobile” and “automobile => car”
  • One-way: “car => automobile, vehicle” (expands car but not vice versa)

Example

Synonym map: car => automobile, vehicle; bicycle => bike

Query: car insurance

Expanded: (car OR automobile OR vehicle) AND insurance

Variants and history

Index-time expansion: synonyms added at indexing (less flexible). Query-time expansion: applied during query processing (standard). Domain-specific maps: customised for vertical (e-commerce, medical, etc.). Lucene SynonymFilter, Elasticsearch synonym_graph filter. Manual curation vs. automatic derivation (WordNet, embeddings).

When to use it

Improve recall for user queries with domain-specific terminology variations. Essential for e-commerce (colours, styles), medical (drugs, conditions), and international search. Can reduce precision if synonyms are imprecise. Requires maintained, domain-tuned synonym lists. Monitor query expansion impact via metrics.

See also