Vespa Product Updates, June 2020: Support for Approximate Nearest Neighbor Vector Search, Streaming Search Speedup, Rank Features, & GKE Sample Application
<p><a href="https://www.linkedin.com/in/kraune/">Kristian Aune</a>, Tech Product Manager, Verizon Media<br/></p><p><b></b></p><p>In the <a href="https://yahoodevelopers.tumblr.com/post/619482410843799552/vespa-product-updates-may-2020-improved-slow">previous update</a>, we mentioned Improved Slow Node Tolerance, Multi-Threaded Rank Profile Compilation, Reduced Peak Memory at Startup, Feed Performance Improvements, and Increased Tensor Performance. This month, we’re excited to share the following updates:</p><p><b></b></p><p><b>Support for Approximate Nearest Neighbor Vector Search </b></p><p>Vespa now supports approximate nearest neighbor search which can be combined with filters and text search. By using a <a href="https://blog.vespa.ai/approximate-nearest-neighbor-search-in-vespa-part-1/">native implementation of the HNSW algorithm</a>, Vespa provides state of the art performance on vector search: Typical single digit millisecond response time, searching hundreds of millions of documents per node, but also uniquely allows vector query operators to be combined efficiently with filters and text search - which is usually a requirement for real-world applications such as text search and recommendation. Vectors can be updated in real-time with a sustained write rate of a few thousand vectors per node per second. Read more in the documentation on <a href="https://docs.vespa.ai/documentation/nearest-neighbor-search.html">nearest neighbor search</a>. </p><p><b></b></p><p><b>Streaming Search Speedup</b></p><p>Streaming Search is a feature unique to Vespa. It is optimized for use cases like personal search and e-mail search - but is also useful in high-write applications querying a fraction of the total data set. With <a href="https://github.com/vespa-engine/vespa/pull/13508">#13508</a>, read throughput from storage increased up to 5x due to better parallelism.<b><br/></b></p><p><b>Rank Features</b><br/></p><ul><li>The (Native)fieldMatch rank features are optimized to use less CPU query time, improving query latency for <a href="https://docs.vespa.ai/documentation/text-matching-ranking.html#ranking">Text Matching and Ranking</a>. </li><li>The new globalSequence rank feature is an inexpensive global ordering of documents in a system with stable system state. For a system where node indexes change, this is inaccurate. See <a href="https://docs.vespa.ai/documentation/reference/rank-features.html#globalSequence">globalSequence documentation</a> for alternatives.</li></ul><p><b>GKE Sample Application</b></p><p>Thank you to <a href="https://github.com/griseau">Thomas Griseau</a> for contributing a <a href="https://github.com/vespa-engine/sample-apps/tree/master/basic-search-on-gke">new sample application</a> for Vespa on <a href="https://cloud.google.com/kubernetes-engine">GKE</a>, which is a great way to start using Vespa on Kubernetes.</p><p>…</p><p>About Vespa: Largely developed by Yahoo engineers, <a href="https://github.com/vespa-engine/vespa">Vespa</a> is an open source big data processing and serving engine. It’s in use by many products, such as Yahoo News, Yahoo Sports, Yahoo Finance, and the Verizon Media Ad Platform. Thanks to feedback and contributions from the community, Vespa continues to grow.</p><p>We welcome your contributions and feedback (<a href="https://twitter.com/vespaengine">tweet</a> or <a href="mailto:info@vespa.ai">email</a>) about any of these new features or future improvements you’d like to request.</p>