Releases: alexklibisz/elastiknn
Releases · alexklibisz/elastiknn
0.1.0-PRE30
- Added new submodules which can be used without Elasticsearch:
com.klibisz.elastiknn:modelscontains exact and approximate similarity models, all in Java with minimal dependencies.com.klibisz.elastiknn:lucenecontains the custom Lucene queries and some Lucene-related utilities used by Elastiknn.com.klibisz.elastiknn:api4s_2.12contains Scala case classes and codecs representing the Elastiknn JSON API.com.klibisz.elastiknn:client-elastic4s_2.12contains the Elastiknn Scala client.
0.1.0-PRE29
- Switched to less-naive implementation of multiprobe L2 LSH. Specifically, uses algorithm 1 from Qin, et. al. to generate
perturbation sets lazily at query time instead of generating them exhaustively. This does not use the estimated
scoring optimization from that paper. - Performance optimizations for approximate queries. Specifically using a faster sorting method to sort the hashes before
retrieving matching docs from the shard.
0.1.0-PRE28
- Introduced multiprobe L2 LSH. It's a small change. Search for
probesin the API docs. - Bug fix for an edge case in approximate queries.
0.1.0-PRE27
- Changed to GPLv3 license. See: https://github.com/alexklibisz/elastiknn/blob/master/LICENSE.txt.
0.1.0-PRE26
- Added Permutation Lsh model and query, based on paper Large Scale Image Retrieval with Elasticsearch by Amato, et. al.
- Several internal improvements, including support for LSH models with repeated hashes.
0.1.0-PRE25
- Performance improvements for LSH queries. 1.5-2x faster on regular benchmarks with randomized data. See PR #114.
0.1.0-PRE24
- Fixed error with KNN queries against vectors that are stored in nested fields, e.g.
outer.inner.vec.
0.1.0-PRE23
- Switched LSH parameter names to more canonical equivalents:
bands -> L,rows -> k,
based on the LSH wikipedia article
and material from Indyk, et. al, e.g. these slides. - Added a
kparameter to Hamming LSH model, which lets you concatenate > 1 bits to form a single hash value.
0.1.0-PRE22
- Switched scala client to store the ID as a doc-value field. This avoids decompressing the document source
when reading results, which is about 40% faster on benchmarks for both exact and approx. search.
0.1.0-PRE21
- Re-implemented LSH and sparse-indexed queries using an optimized custom Lucene query based on the TermInSetQuery.
This is 3-5x faster on LSH benchmarks. - Updated L1, and L2 similarities such that they're bounded in [0,1].