Skip to content

spawn08/sample-apps

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vespa logo

Vespa sample applications

Getting started - Basic Sample Applications

This is the sample application used in the Vespa tutorial. Please follow the tutorial. This application demonstrates basic search functionality. It also demonstrates how to build a recommendation system where approximate nearest neighbor search in a shared user/item embedding space is used to retrieve recommended content for a user. This sample app also demonstrates use of parent-child relationships.

This is the intro application to Vespa. Learn how to configure the schema for simple recommendation and search use cases. There is also a version of this sample application ready for Vespa Cloud.

Full-fledge State of the Art Search, Ranking and Question Answering applications

These are great starting points for bringing the latest advancements in Search and Ranking to your domain!

This sample application demonstrates state of the art text ranking using Transformer (BERT) models and GBDT models for text ranking. It uses the MS Marco passage and document ranking datasets.

The document ranking part of the sample app uses a trained LTR (Learning to rank) model using GBDT with LightGBM. The passage ranking part uses multiple state of the art pretrained language models in a multiphase retrieval and ranking pipeline. See also Pretrained Transformer Models for Search blog post series. There is also a simpler ranking app also using the MS Marco relevancy dataset. See text-search which uses traditional IR text matching with BM25/Vespa nativeRank.

Create an end-to-end E-Commerce shopping engine using use-case-shopping. 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.

This sample application demonstrates end to end question answering using Faceboook's DPR models (Dense passage Retriever for Question Answering). It is using Vespa's approximate nearest neighbor search to efficiently retrieve text passages from a Wikipedia based collection of 21M passages. A BERT based reader component reads the top ranking passages and produces the textual answer to the question. See also Efficient Open Domain Question Answering with Vespa and Scaling Question Answering with Vespa.

This sample application focus on retrieval for question answering but without the Reader/Answering component as in the above sample app. It uses a pre-built dense vector model from Tensorflow hub. The application uses Vespa's nearest neighbor search operator to efficiently retrieve over a relatively small dataset from Google's Natural Questions. See also Building a Question Answering app from python with vespa. This is a great introduction to Vespa's approximate nearest neighbor search support.

This sample application demonstrates search-as-you-type where for each keystroke of the user, we retrieve the best matching documents. It also demonstrates search suggestions (query autocompletion).

Sample Applications

These sample application demonstrates various Vespa features and capabilities.

A sample Vespa application which 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. Stateless ML model serving can also be used in state-of-the-art retrieval and ranking pipelines, e.g. query classification and encoding text queries to dense vector representation for efficient retrieval using Vespa's approximate nearest neighbor search.

A sample application demonstrating Vespa grouping and faceting for query time result analytics. Vespa grouping documentation

A sample app which demonstrates how to use Vespa's predicate field type to implement indexing of boolean expressions. Boolean document side constraints allows the document to specify which type of queries it can be retrieved for. This allows expressing logic like "this document should only be visible in search for readers in age range 20 to 30" or "This product should only be visible in search during campaign hours".

Self-hosted Deployments

Set up a three-node application and experiment with node start/stop. Use status and metrics pages to inspect the system. Whenever deploying and facing issues, please refer to this application for how to get useful debugging information for support follow-up - i.e. run this application first.

This sample application demonstrates deploying a simple Vespa application on Kubernetes.

This sample demonstrates configuring Vespa with mTLS.

This sample app demonstrates how to integrate Vespa with Prometheus and Grafana.

Custom API and Plugins

This application demonstrates integrating custom linguistic processing, in this case a Chinese tokenizer (Jieba).

This application demonstrates how to build custom HTTP apis, building REST interfaces with custom handlers and renderers. See also Custom HTTP Api tutorial.

This is a technical sample application demonstrating how to use multiple OSGI bundles for custom plugins (searchers, handlers, renderers).


Note: Applications with pom.xml are Java/Maven projects and must be built before being deployed. Refer to the Developer Guide for more information.

Contribute to the Vespa sample applications.


Vespa Sampleapps Search Feed

sample-apps link checker

sample-apps build

sample-apps verify-guides

About

Repository of sample applications

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 60.4%
  • Python 26.5%
  • JavaScript 5.6%
  • Shell 2.3%
  • CSS 2.3%
  • Jupyter Notebook 1.4%
  • Other 1.5%