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:
- Query terms are tokenised and normalised
- Synonym filter maps each term to its synonyms (one-to-many or many-to-one)
- Resulting query includes original terms plus synonyms
- 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.