Skip to content

Releases: alexklibisz/elastiknn

0.1.0-PRE30

10 Aug 16:23
c3d2440

Choose a tag to compare

  • Added new submodules which can be used without Elasticsearch:
    • com.klibisz.elastiknn:models contains exact and approximate similarity models, all in Java with minimal dependencies.
    • com.klibisz.elastiknn:lucene contains the custom Lucene queries and some Lucene-related utilities used by Elastiknn.
    • com.klibisz.elastiknn:api4s_2.12 contains Scala case classes and codecs representing the Elastiknn JSON API.
    • com.klibisz.elastiknn:client-elastic4s_2.12 contains the Elastiknn Scala client.

0.1.0-PRE29

07 Aug 00:28
f590029

Choose a tag to compare

  • 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

02 Aug 02:23
3cf67de

Choose a tag to compare

  • Introduced multiprobe L2 LSH. It's a small change. Search for probes in the API docs.
  • Bug fix for an edge case in approximate queries.

0.1.0-PRE27

31 Jul 13:11

Choose a tag to compare

0.1.0-PRE26

29 Jul 01:47
3a67e30

Choose a tag to compare

  • 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

24 Jul 02:08
cfe34d0

Choose a tag to compare

  • Performance improvements for LSH queries. 1.5-2x faster on regular benchmarks with randomized data. See PR #114.

0.1.0-PRE24

14 Jul 02:23
a4d85f6

Choose a tag to compare

  • Fixed error with KNN queries against vectors that are stored in nested fields, e.g. outer.inner.vec.

0.1.0-PRE23

12 Jul 17:57
f1cb38a

Choose a tag to compare

  • 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 k parameter to Hamming LSH model, which lets you concatenate > 1 bits to form a single hash value.

0.1.0-PRE22

07 Jul 02:27
de456ca

Choose a tag to compare

  • 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

29 Jun 02:21
ffe0aff

Choose a tag to compare

  • 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].