Liking cljdoc? Tell your friends :D

Changelog

All notable changes to this project are documented here. Format follows Keep a Changelog; this project adheres to Semantic Versioning.

[Unreleased]

[0.8.0] - 2026-08-30

Changed

  • Breaking change: Saved indexes now use a durable snapshot format that 0.7.0 and earlier cannot read. Callers must upgrade to 0.8.0 and recreate or re-save indexes before sharing them with older deployments; existing legacy directories remain readable.

Fixed

  • Interrupted or concurrent saves no longer destroy the last complete snapshot or combine files from different snapshots.
  • Loading now rejects metadata without an :index-sha256 checksum instead of accepting an unverified index/metadata pair.
  • Sparse vectors with different numbers of indices and values now fail with :vector-search/error :invalid-vector instead of being silently truncated.

[0.7.0] - 2026-08-27

Added

  • Added nearest-neighbor lookup by an existing item ID with find-neighbors.
  • Added items for enumerating indexed items without exposing hnswlib objects.
  • Added as-exact-index for an exhaustive snapshot of an HNSW index.
  • Added native sparse-vector inner-product indexes with :sparse-dot.

[0.6.0] - 2026-08-27

Added

  • Added custom Clojure distance functions with explicit higher-is-better or lower-is-better score direction.
  • Custom-distance indexes fail early when saved because arbitrary functions cannot be reliably reconstructed during deserialization.

[0.5.0] - 2026-08-27

Added

  • Added Manhattan, correlation, Canberra, and Bray-Curtis distance metrics.

Fixed

  • Sort order and hybrid dense/sparse fusion now whitelist :cosine and :dot as similarity metrics (higher is better) instead of hard-coding :euclidean as the only "lower is better" metric, so the new distance metrics sort correctly.

[0.4.1] - 2026-08-17

Fixed

  • Index snapshots are written atomically: both files are staged to temporary files and atomically renamed, and a SHA-256 of index.bin is recorded in the sidecar and verified on load, so a load can no longer pair mismatched files.
  • search honors :ef for HNSW indexes instead of silently ignoring it.

[0.4.0] - 2026-07-16

Added

  • BM25 sparse retrieval.
  • Hybrid dense+sparse search with RRF and weighted fusion.
  • Indexed metadata filter DSL with eq, in, range, and, or, and not operators.

[0.3.1] - 2026-07-09

Fixed

  • POM now includes the project description, homepage URL, and full SCM connection metadata, so Clojars shows a description/homepage and cljdoc has complete source-link data.

Can you improve this documentation?Edit on GitHub

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close