Vespa Newsletter, April 2022
In the previous update, we mentioned faster node recovery and re-balancing, reindexing speed, WeakAnd, synonyms and language detection. Today, we’re excited to share the following updates:
In the news
In Dimitry Khan’s Vector Podcast, enjoy Jo Kristian Bergum from the Vespa Team in the Journey of Vespa from Sparse into Neural Search. This is a great 90 minutes of Vespa, vector search, multi-stage ranking and approximate nearest neighbor, and more!
Compact tensor format
Vespa now supports short form parsing for unbound dense (e.g.
and partially unbound (e.g.
Available since Vespa 7.459.15.
Refer to document-json-format.html#tensor and
Modular rank profiles
A rank-profile is a named set of ranking expression functions and -settings which can be selected in the query. Complex applications typically have multiple schemas and rank profiles. Now, multiple inheritance of rank profiles and support for defining profiles in separate files is supported from Vespa 7.538.
Result Grouping is used to aggregate data in fields in query hits, to implement use cases like number of items per category, inventory check, maximum values per category, etc. As the aggregation functions possibly spans the full corpus, temporary memory usage can be a problem for some queries. Use the new configuration parameters defaultMaxGroups, defaultMaxHits and globalMaxGroups to control grouping result set sizes.
pyvespa is Vespa’s simplified python bindings for query and ranking experiments. With pyvespa 0.16.0, it is possible to specify the Docker image - use this for M1 testing, ref pyvespa#231. With pyvespa 0.17.0, one can deploy to Docker using POST, without using a disk mount - see pyvespa#296.
New query guides
Vespa has unmatched query performance for (approximate) nearest neighbor search with filters and real-time update-able fields. It can however be a challenge to balance the cost/performance tradeoffs to get the configuration optimal. The new guides practical search performance and nearest neighbor search are great resources, exploring multithreaded queries, use of embeddings, HNSW configuration and multivalue query operators and more - including advanced query tracing.
Get ready for Vespa 8
Vespa uses semantic versioning and releases new features continuously on minor versions. Major version changes are used to mark versions which break compatibility, by removing previously deprecated features, changing default values and similar. The next time this happens will be in June, when we release Vespa 8. Review the release notes to make sure your applications are compatible with Vespa 8.