Semantic Car Search:A Vector-Based Approach

Leveraging High-Dimensional Embeddings for Intelligent Automotive Discovery
ThéophileWheeloh EngineeringNovember 2025Updated October 3, 202612 min read

Abstract

Automotive search engines traditionally rely on exact text matching, which struggles when users employ informal slang, nicknames, or make typographical errors. We introduce the architecture behind Wheeloh’s Semantic Car Search, indexing 22,180 distinct vehicle models across 143 global marques into a continuous 1,536-dimensional vector space. By computing normalized dot products over local in-memory embeddings, the system evaluates all candidate vectors in 1.8 milliseconds on standard CPU hardware. On an evaluation suite of 897 real-world test queries, our approach attains a 84.6% exact Top-1 accuracy and a 94.2% Top-5 retrieval recall (MRR: 0.881), maintaining high resilience across multilingual inputs and heavy typos while slashing operational serving costs to zero.

Section 01

1. Introduction

1.1 Motivation: The Automotive Semantic Gap

Automotive catalogs exhibit deep hierarchical taxonomies:

Manufacturer→Model Line→Generation Chassis Code→Trim Version→Powertrain Edition

However, car spotters, collectors, and casual enthusiasts almost never formulate queries aligned with this strict canonical hierarchy. Real-world queries exhibit high entropy across four distinct failure modes for classical lexical systems:

  • Slang & Nicknames

    Users enter colloquial terms like "Beamer" (BMW), "Merc" (Mercedes), "Rari" (Ferrari), "Miata" (Mazda MX-5), or "G-Wagon" (G-Class).

  • Generational Variations

    A search for "911 Turbo" encompasses 50 years of divergent chassis codes (930, 964, 993, 996, 997, 991, 992) which share no lexical tokens with "Turbo".

  • Typos & Phonetic Errors

    Mobile camera users typing on the move submit severe typos: "LAmborgini Huracan", "Ferari Testarosa", or "Porshe Cayan".

  • Multilingual Descriptive Intent

    Non-English queries describing mechanical attributes without brand labels, e.g. "voiture de sport italienne v10" or "break allemand puissant".

1.2 Problem Statement & Production SLAs

To power Wheeloh's mobile vehicle identification experience, the search engine must operate within three strict engineering Service Level Agreements (SLAs):

1
Semantic Query Understanding
Zero reliance on manual alias dictionaries or heuristic regex rules. The system must natively generalize across colloquial jargon, typos, and multilingual descriptions.
2
Sub-50 ms End-to-End Latency
To empower fluid search-as-you-type in the live camera viewfinder, core vector comparison must execute in < 5 ms, leaving budget for network transmission and mobile UI rendering.
3
Zero Hallucinations
Unlike generative LLMs that fabricate non-existent vehicle trims, 100% of candidate outputs must strictly resolve to valid canonical catalog records.
Section 02

2. Methodology

2.1 Vector Embeddings & Document Serialization

Each vehicle entity in the Wheeloh database is serialized into a structured contextual representation prior to vectorization:

# Contextual document serialization for automotive entities
def serialize_vehicle(car: dict) -> str:
return (
f"Make: {car['brand']} | "
f"Model: {car['model']} | "
f"Generation: {car.get('generation', 'N/A')} | "
f"Version: {car['version']} | "
f"Powertrain: {car.get('powertrain', 'N/A')}"
)
# Unit-normalized dense embedding generation (1,536 dimensions)
doc_vector = model.encode(
input=serialize_vehicle(vehicle),
normalize_embeddings=True # Enforces ||d||_2 = 1.0
)
# Output: ndarray(shape=(1536,), dtype=float32, norm=1.0)

The encoder projects these serialized strings into a continuous 1,536-dimensional metric space where automotive semantic relationships correspond to directional proximity on a hypersphere.

2.2 Similarity Computation & SIMD Acceleration

Semantic similarity between an incoming query vector q and candidate vehicle vector d is governed by cosine similarity:

sim(q, d) =
q · d||q|| · ||d||
(1)

Because all vehicle representations d and query vectors q are pre-normalized to unit L2 norm (||q|| = 1 and ||d|| = 1), the denominator simplifies to unity. The similarity score reduces strictly to a linear inner dot product:

s=D·q
whereD∈ ℝ22,180 × 1,536
(2)

Matrix multiplication across the entire dataset of 22,180 indexed vehicles completes in 1.6 milliseconds via AVX2 SIMD fused multiply-add (FMA) instructions. Top-k candidates are isolated using a linear-time partition:

# Vectorized SIMD dot-product and top-k retrieval in NumPy
import numpy as np
# D: Pre-loaded matrix of shape (22180, 1536), dtype float32 (34 MB in RAM)
scores = np.dot(D, q) # 1.6 ms via AVX2 SIMD / BLAS
# Linear-time Top-K selection without full O(N log N) sorting
k = 5
candidate_indices = np.argpartition(scores, -k)[-k:]
top_k_sorted = candidate_indices[np.argsort(-scores[candidate_indices])]
# Result: Top-5 candidate models isolated in 1.8 ms total execution time

2.3 Latent Manifold Projection (PCA)

To inspect cluster topology and verify semantic coherence, we compute an orthogonal linear transformation via Principal Component Analysis (PCA). The 1,536-dimensional latent space is projected onto the top two eigenvectors that capture maximum spatial variance, yielding a 2D coordinate system:

z=WPCA·d
whereWPCA∈ ℝ2 × 1,536
(3)
Section 03

3. Key Metrics

Indexed Fleet
22,180
143 global marques
Embeddings
1,536
Dense representation
Top-5 Recall
94.2%
84.6% Top-1 (MRR: 0.881)
Search Latency
1.8 ms
20.4 ms end-to-end
Section 04

4. Interactive PCA Demonstration

Explore the 22,180-vehicle continuous latent space projected into 2D via PCA. Filter by vehicle archetype or type live queries to evaluate semantic proximity.

0 cars

Loading 22,180 car embeddings...

Loading interactive visualization...
Strict Clustering:Zero false positives on cosmetic "sport" trim levels.
WebGL ScatterGL • Pan / Zoom active
Section 05

5. Experimental Evaluation & Deep Analysis

Empirical evaluation of the Wheeloh vector search engine across an evaluation benchmark of 897 real-world test queries, measuring recall, robustness against noise, score distribution, and serving latency.

Cumulative Retrieval Recall @ K

MRR: 0.881

Empirical top-k discovery recall curve over 897 evaluation queries.

Loading interactive visualization...
Analytical Note: While exact Top-1 recall is 84.6%, presenting a 5-card horizontal suggestion carousel in the camera viewfinder elevates discovery to 94.2% (MRR: 0.881), eliminating user typing friction in 94.2% of mobile scans.

Robustness Across Typologies

+70.6% on Typos

Top-5 recall comparison against traditional BM25 lexical search.

Loading interactive visualization...
Highlights: Dramatic retrieval margins: +61.4% on slang ("Beamer M3"), +70.6% on mobile typos ("Ferari"), and +70.2% on multilingual searches ("voiture de sport italienne v10").

Cosine Similarity Score Density

Cutoff τ = 0.72

Gaussian probability distributions demonstrating class separability.

Loading interactive visualization...
Decision Boundary: Setting an operational cutoff threshold at τ = 0.72 isolates authentic target matches from brand siblings with minimal false-discovery contamination.

Production Latency Profile

20.4 ms E2E

Stage breakdown across the complete end-to-end request lifecycle.

Loading interactive visualization...
Total Latency Budget: The core vector search operation completes in 1.8 ms. Even including edge neural embedding inference (18.2 ms), total pipeline latency is 20.4 ms—well within our 50 ms budget.

Architectural Benchmarking

Comparison of retrieval accuracy, computational resource footprints, and query latency across architectural paradigms.

Engine / ArchitectureTop-1 Acc.Top-5 Acc.Query LatencyMemory (RAM)
SQL Exact Matching (ILIKE / Regex)29.4%34.2%1.2 ms< 2 MB
BM25 / Elasticsearch48.7%59.8%8.5 ms~180 MB
Wheeloh Vector Search (Local)Production84.6%94.2%1.8 ms (20 ms E2E)34 MB

← Swipe table horizontally to see all metrics →

Section 06

6. Conclusion & Future Roadmap

The vector-based semantic search architecture detailed herein is deployed in production within the Wheeloh mobile spotter ecosystem. Indexing 22,180 distinct automotive models into an AVX2-accelerated in-memory matrix enables sub-20 ms end-to-end query resolution with 94.2% Top-5 accuracy at zero marginal cloud database costs.

Roadmap Initiatives

1. Multimodal Visual Search (Zero-Shot CLIP)

Aligning mobile camera viewfinder crops directly into the joint embedding space via a fine-tuned contrastive vision-language transformer, allowing visual spots to query the text catalog without intermediary OCR.

2. INT8 Quantization for On-Device Edge Serving

Quantizing the 1,536-dimensional FP32 matrix to symmetric INT8 values reduces the memory footprint from 34 MB to 8.5 MB, unlocking 100% offline search capabilities natively within the iOS and Android applications.

3. Hybrid Reciprocal Rank Fusion (RRF)

Fusing continuous dense vectors with sparse exact chassis code indices (e.g. "E46", "997.2", "NA6CE") via Reciprocal Rank Fusion to achieve the highest possible precision when spotters use definitive enthusiast chassis codes.

Try the car search yourself.

It runs in the Wheeloh app: point your phone at a car and it is identified in seconds. Free on iPhone and Android.