For operational sample applications, see examples/operations. See also PyVespa examples.
The album-recommendation is the intro application to Vespa. Learn how to configure the schema for simple recommendation and search use cases.
The simple semantic search
application demonstrates indexed vector search using HNSW
,
creating embedding vectors from a transformer language model inside Vespa, and hybrid
text and semantic ranking. This app also demonstrates using native Vespa embedders.
The retrieval-augmented-generation sample application demonstrates how to build an end-to-end RAG pipeline with API-based and local LLMs.
The Vespa Multi-Vector Indexing with HNSW app demonstrates how to index multiple vectors per document field for semantic search for longer documents.
The vector-streaming-search app demonstrates how to use vector streaming search. See also blog post.
The colbert application demonstrates how to use the Vespa colbert-embedder for explainable semantic search with better accuracy than regular text embedding models.
The colbert-long application demonstrates how to use the Vespa colbert-embedder for explainable semantic search for longer documents.
The splade application demonstrates how to use the Vespa splade-embedder for semantic search using sparse vector representations.
The multilingual sample application demonstrates multilingual semantic search with multilingual text embedding models.
The custom-embeddings application demonstrates customizing frozen document embeddings for downstream tasks.
The news sample application used in the Vespa tutorial. This application demonstrates basic search functionality.
It also demonstrates how to build a recommendation system where the approximate nearest neighbor search in a shared user/item embedding space is used to retrieve recommended content for a user. This app also demonstrates using parent-child relationships in Vespa.
This billion-scale-image-search app demonstrates billion-scale image search using CLIP retrieval. It features separation of compute from storage and query time vector similarity de-duping. PCA dimension reduction and more.
This msmarco-ranking application demonstrates how to represent state-of-the-art text ranking using Transformer (BERT) models. It uses the MS Marco passage ranking datasets and features bi-encoders, cross-encoders, and late-interaction models (ColBERT).
See also the more simplistic text-search app that demonstrates traditional text search using BM25/Vespa nativeRank.
The use-case-shopping app creates an end-to-end E-Commerce shopping engine.
This use case also bundles a frontend application.
It uses the Amazon product data set.
It demonstrates building next generation E-commerce Search using Vespa. See
also the commerce-product-ranking sample application for using
learning-to-rank techniques (Including XGBoost
and LightGBM
) for improving product search ranking.
The incremental-search application demonstrates search-as-you-type functionality, where for each keystroke of the user, it retrieves matching documents. It also demonstrates search suggestions (query auto-completion).
The model-inference application demonstrates using Vespa as a stateless ML model inference server where Vespa takes care of distributing ML models to multiple serving containers, offering horizontal scaling and safe deployment. Model versioning and feature processing pipeline.
Note: Applications with pom.xml are Java/Maven projects and must be built before deployment. Refer to the Developer Guide for more information.
Contribute to the Vespa sample applications.