github weaviate/weaviate v1.18.0
v1.18.0 - Bitmap Indexing, HNSW-PQ, Hybrid Filters, Cursors, Tunable Consistency

latest releases: v1.26.10, v1.25.25, v1.27.3...
20 months ago

Breaking Changes

none

New Features

Faster Filtering through Bitmap Indexing (RoaringSet) for non-text props

This release introduces bitmap indexing for much faster filtering of any non-text property. In some extreme cases, the speed up is over 1,000x.

This change is non-breaking. Old datasets will continue to work using the old mechanism. There is also an option to perform a zero downtime migration, during which Weaviate will be in read-only mode.

  • Native Roaring Bitmap support in LSM Store by @aliszka in #2515
  • Migration of inverted index buckets of collection set to roaring set strategy by @aliszka in #2690

HNSW-PQ (Product Quantization for reduced memory footprint)

Optionally compress vectors using Product Quantization while still using HNSW. This combination brings the best of both worlds; depending on configuration the overall memory footprint can drop 25%, 50%, or even 75% percent, while still offering great performance and recall. Check this blogpost (coming soon) for details on the respective trade-offs.

BM25 WAND Algorithm & Performance Improvements

BM25 scoring (originally introduced in v1.17) was reworked to use a Weak-AND (WAND) algorithm. In addition, further performance improvements were applied. Now BM25 scoring is considerably faster than in v1.18. In some cases more than 10x faster.

BM25 & Hybrid Search where filters

While v1.17 introduced both BM25 and Hybrid Search, one limitation was that where filters could not be combined with either of those options. Now they can.

Replication: Tunable Consistency

V1.17 introduced Replication support, however, not all write and read endpoints supported tunable consistency yet. They do now.

Replication: Automatic Repair on Read

If Weaviate detects an inconsistency between two or more replicas, it will now automatically repair those inconsistencies if possible. No user action is required other than querying the "broken" object with a high enough consistency level.

Export all objects using Cursor API

Previously users would run into a the QUERY_MAXIMUM_RESULTS limit when trying to export all objects out of Weaviate. Alternatively they had to build their own paging workaround using where filters. With the new Cursor API it is easy to extract all objects. The cost per "page" is constant regardless of scale.

New Module: Azure Backups Provider

In addition to GCS and AWS S3, Weaviate now supports Azure Cloud Storage as a backup destination.

Fixes

Security

  • Bump github.com/opencontainers/runc from 1.0.2 to 1.1.2 by @dependabot in #2525
  • Bump github.com/docker/distribution from 2.7.1+incompatible to 2.8.0+incompatible by @dependabot in #2523
  • Bump github.com/containerd/containerd from 1.5.9 to 1.5.16 by @dependabot in #2524
  • Dependabot fixes by @etiennedi in #2544
  • Bump github.com/containerd/containerd from 1.5.16 to 1.5.18 by @dependabot in #2644
  • Bump golang.org/x/net from 0.4.0 to 0.7.0 in /test/benchmark_bm25 by @dependabot in #2658

Other

New Contributors

Full Changelog: v1.17.5...v1.18.0

Don't miss a new weaviate release

NewReleases is sending notifications on new releases.