← Back to projects
Eurowings · Lufthansa Group•4-month production rollout

AI-Powered Semantic Search

Enterprise search powered by embeddings, retrieval, and LLMs

Built a production AI onsite search platform for airline e-commerce that understands natural-language questions, user typos, semantic variations, and FAQ intent across nine European languages.

Semantic SearchRAGHybrid RetrievalVector SearchE5 LargeGPT-4LlamaIndexDatabricksUnity Catalog

Business Problem

Traditional keyword matching on airline e-commerce platform struggled with natural-language questions, typos, semantic variations, and multilingual intent. High zero-result rates made it harder for customers to find answers and increased avoidable support demand. The objective was a production-grade search engine that could surface accurate FAQ answers and handle changing web content reliably.

Architecture

  • Nuxt.js website and backend search API
  • Daily Databricks ETL ingests website pages and FAQ Q&A pairs into governed Delta tables.
  • Smart token-boundary chunking creates web-page chunks up to 500 tokens and FAQ chunks up to 80 tokens.
  • Delta Change Data Feed synchronizes model- and content-type-specific indexes into Databricks Vector Search.
  • A secured model-serving endpoint exposes hybrid retrieval through a REST API gateway connecting the web application to inference services.
  • LLM summarization for high-confidence answer generation
Architecture diagram for the AI-powered semantic search platform
AI-powered semantic search architecture

Technical Decisions

  • Combined BM25 lexical precision for exact flight and booking terms with dense vector embeddings and reranking for semantic intent.
  • Benchmarked Azure OpenAI text-embedding-3-large against HuggingFace intfloat/multilingual-e5-large-instruct and selected E5 Large with hybrid ranking for multilingual quality, cost efficiency, and serving latency.
  • Used decoupled governed index tables partitioned by model and content type to support zero-downtime model upgrades.
  • Kept retrieval deterministic and used GPT-4 only for final summarization to control cost and hallucinations.

Production Challenges

  • Used incremental snapshotting to detect content updates and deletions, purge obsolete pages, and prevent broken links from being served.
  • Scheduled weekly drift analysis against a gold-standard dataset, with automated alerts when average recall falls below the 65% baseline threshold.
  • Built a Databricks App with Streamlit for batch benchmarking across Recall, Precision, F1, P@K, and NDCG@K, complemented by Databricks Genie AI Agents for conversational production insights.
  • Optimized endpoint cold starts with lazy model loading, standardized 100–500 word chunk sizing, and query-time deduplication.
  • Reduced latency with caching, parallel retrieval, prompt optimization, and top-k tuning.
  • Introduced confidence thresholds and score-gap heuristics to handle vector-search false positives.
  • Added offline golden-set evaluation and canary rollback after an embedding-model update hurt recall.

Outcomes

Achieved approximately 80.5% top-10 recall and 66.66% top-5 recall on complex customer queries using the E5 Large hybrid pipeline.
Expanded from an English MVP to nine European languages: English, German, Czech, Austrian German, Italian, French, Spanish, Swedish, and Dutch.
Established a governed AI search foundation with Delta Lake, Vector Search, CI/CD deployment bundles, continuous benchmarking, and observability.
Created a maintainable content lifecycle that refreshes changed pages and removes deleted or unavailable content automatically.
18% reduction in customer support calls, generating €420K annual cost savings
Higher self-service engagement for baggage, cancellation, and check-in content

Related Links