Cross-Lingual Semantic Search

A question in French over English notes finds the right documents although it shares no word with them: the text match returns nothing, nearest neighbours over the embeddings fill in, and an exact English query keeps its exact matches.

Cross-Lingual Semantic Search: screenshot from the Company AI demo
_query_recommendCross-vertical
Production anchorIn Company AI's search test, the French query 'quels prospects contacter au sujet des prix' gets no text-match hits, and the blended vector search returns English documents led by the same account plan an English search for 'pricing' puts first.

The problem

Keyword search fails the moment the words differ: another language, a synonym, a description instead of a name. Pure vector search fixes that and loses the exact match, so a search for a product code or a customer name comes back fuzzy.

How it works

The query first runs as a text match, each term OR'd with $match and ranked by $similarity. Nearest neighbours ($nearest) over embeddings stored beside the same items are then interleaved with those hits rather than replacing them, so exact matches stay on top and meaning fills the gaps.

Search also learns: each result shown is logged as an impression, and once clicks exist, _recommend reorders results by the probability of a click for similar queries.

For the full architecture, see the technology overview. For the broader narrative across multiple use cases, read The Predictive Application.

See it live

This use case runs in Company AI, a reference application you run yourself. There is no hosted demo, so the link opens its illustrated tour and source on GitHub: Company AI tour on GitHub →