Features:
All you need to build complete data-driven applications
Leveraging Vespa’s features to build complete applications in Vespa you can be sure they will perform at any scale.
-
Vector, text and structured search
Vespa provides industry-leading vector search, text search and selection in structured data:
-
Vector and tensor search: Any number of vector fields can be added to documents, and searched with or without an index. Tensors representing maps of vectors can also be indexed and searched, for example to represent multi-chunk document embeddings.
Tensor values can be everything from doubles down to single bits to optimize memory and cpu consumption. There are no restrictions on lengths or amounts.
-
Text search: Vespa uses true positional text indexes which lets it provide a wide range of text match features giving detailed information about how well a query matches each text field, in addition to basic features like bm25. Text indexes are stored on disk and so require little memory regardless of size.
Configurable linguistics integration lets Vespa automatically take care of stemming and token normalization across many languages as well as segmentation for CJK. Dynamic snippet generation makes it possible to extract and highlight useful information from large text fields. Text match operators range from matching any or all terms, matching by closeness, and the more advanced wand algorithm.
-
Structured search: Structured data can be of any basic type, as well as arrays, maps, and structs composing such data. Structured data can be indexed, but are searchable whether or not indexes are created. Structured operators range from exact match to ranges, fuzzy and regex match.
Queries in Vespa can be any boolean combination of operators over fields of these three categories, and Vespa will execute them as efficiently as is possible using data-aware query planning.
-
-
Machine learned ranking
Vespa can generate a large selection of ranking signals when a query is matching the various fields of a data item. Further signals can come from the query or directly from structured data fields. These signals can be combined into a rank score using any mathematical function over tensors. The functions can be written by hand or they can be machine-learned models using common formats such as ONNX or XGBoost. Any number of additional inferences can also be made over the data and returned with results.
It is often useful to direct most of the inference cpu towards the best candidates, and Vespa provides this through providing a second ranking phase. Importantly, both the first and second phase executes locally where the data is stored; that is how Vespa lets you scale to any size without impacting quality or latency. A third ranking phase which happens after distributed results are matched is also supported.
Vespa lets you define any number of different rank profiles selected by the query, to support different use cases, bucket tests, markets and similar. Inheritance, dedicated files per profile, and arbitrary function calling allows ranking to sustain the complexity required by mission critical enterprise or internet-scale applications.
-
Unbeatable performance
Extreme performance is at core of everything we do at Vespa, that’s why we have our own core engine in C++ managing memory and implementing our core indexing and searching algorithms. While others can create implementations that perform a simple benchmark well, performance in real, complex and scaled production applications takes a broader outlook, including delivering stable performance over many classes of more complex queries, as well as over time while handling writes at a sustained rate.
Is is in these real-world scenarios Vespa’s long history of delivering for some of the worlds largest use cases really sets us apart.
-
Infinite automated scalability
Vespa is built from infinite scalability from the core up. This means that when a feature is implemented using Vespa’s primitives you can be confident that it will scale linearly with more data or traffic with no practical limitations. The functions in Vespa run distributed over clusters of nodes, and the sizes of the clusters can be changed at any time without impacting queries or writes—data distribution is entirely automatic and happens in the background.
The content clusters that stores data and maintain indexes can be scaled in two dimensions – to more data by adding nodes horizontally, and to more traffic by adding groups of nodes. Further, with Vespa Cloud, you can let cluster sizes—and node resources—follow the shifting needs from imposed traffic and data sizes to minimize cost automatically.
-
Continous deployment and upgrades
Developing real applications isn’t just about getting an initial release out the door but establishing practices for sustained innovation to deliver business value over time. To this end, the practice of continuous delivery has emerged as a best practice.
With continuous delivery, application improvements are delivered on a fine-grained scale—usually many times a day. This shortens feedback loops which makes developers dramatically more efficient. Providing safe continuous deployment for stateful, highly-available systems is challenging, but Vespa Cloud does it!
We also apply the same principle to Vespa itself. New versions of the platform are rolled out to all applications on Vespa Cloud automatically four times a week. This lets you leverage new developments in Vespa as soon as they are ready, but more importantly it makes your applications safe: The most common reason for security breaches is running outdated versions of software.
-
Fully managed with strong security
Developers should spend their time creating great products, not dealing with infrastructure and integration, getting their changes to production, or working around system limits. With Vespa Cloud all operational concerns from procuring nodes to failover between global regions and handled for you automatically using established best practices, and if there should be a need for manual intervention our team is ready to act 24-7.
But managed systems aren’t only about improved operational quality and more efficient operations, they are also a necessity to achieve strong security. Vespa Cloud bakes strong security into applications from the get-go, handling encryption of data at rest and in transit, securing internal and external communication paths using node and endpoint certificates, and keeping OS patches up to date automatically.
Applications can run on Vespa Cloud on Vespa-managed AWS and Gcp accounts, but uniquely for Vespa, we also support deploying applications where the data plane—and data resides entirely in customer-owned dedicated accounts. This combines the operational advantages of managed systems with the security and compliance advantages of keeping data within organizational boundaries.