(add! idx id v)(add! idx id v metadata)(add! idx id v metadata text)Adds or replaces id with vector v. Metadata is stored outside hnswlib.
The five-argument form optionally indexes text for BM25 retrieval.
Adds or replaces id with vector v. Metadata is stored outside hnswlib. The five-argument form optionally indexes text for BM25 retrieval.
(add-batch! idx items)Adds each {:id .. :vector .. :metadata .. :text ..} item and returns the count added.
Adds each {:id .. :vector .. :metadata .. :text ..} item and returns the count added.
(bm25-search idx query k)(bm25-search idx query k opts)Returns BM25 text matches best-first in the standard result-map shape.
Text is lowercased and split on non-alphanumeric characters. Options :k1
and :b default to 1.2 and 0.75.
Returns BM25 text matches best-first in the standard result-map shape. Text is lowercased and split on non-alphanumeric characters. Options `:k1` and `:b` default to 1.2 and 0.75.
(get-item idx id)Returns {:id .. :vector float[] .. :metadata ..} for id, or nil.
Returns {:id .. :vector float[] .. :metadata ..} for id, or nil.
(hybrid-search idx query-vec query-text k)(hybrid-search idx query-vec query-text k opts)Fuses dense vector and BM25 text retrieval into standard result maps.
The default :fusion is reciprocal rank fusion (:rrf) with :rrf-k 60.
:fusion :weighted min-max normalizes each score list and combines it with
:dense-weight and :sparse-weight, each defaulting to 0.5.
Fuses dense vector and BM25 text retrieval into standard result maps. The default `:fusion` is reciprocal rank fusion (`:rrf`) with `:rrf-k` 60. `:fusion :weighted` min-max normalizes each score list and combines it with `:dense-weight` and `:sparse-weight`, each defaulting to 0.5.
(index opts)Creates an embedded vector index handle.
:type is :hnsw by default. :exact uses exhaustive exact search, O(n) per query, with no tuning knobs; it is useful as ground truth or for small corpora. :ef trades recall for speed during search; higher values improve recall.
Creates an embedded vector index handle. :type is :hnsw by default. :exact uses exhaustive exact search, O(n) per query, with no tuning knobs; it is useful as ground truth or for small corpora. :ef trades recall for speed during search; higher values improve recall.
(load-index path)Loads an index handle from path, a directory containing index.bin and meta.edn.
:type in meta.edn selects :hnsw or :exact. Legacy saves without :type load as :hnsw. :exact uses exhaustive exact search, O(n) per query, with no tuning knobs; it is useful as ground truth or for small corpora.
Loads an index handle from path, a directory containing index.bin and meta.edn. :type in meta.edn selects :hnsw or :exact. Legacy saves without :type load as :hnsw. :exact uses exhaustive exact search, O(n) per query, with no tuning knobs; it is useful as ground truth or for small corpora.
(remove! idx id)Removes id from the index. Returns true when an item was removed.
Removes id from the index. Returns true when an item was removed.
(save idx path)Persists idx into path, a directory created when absent. Returns path.
Persists idx into path, a directory created when absent. Returns path.
(search idx query-vec k)(search idx query-vec k {:keys [filter] :as opts})Returns nearest results best-first.
For :cosine and :dot, :score is a similarity where higher is better. For :euclidean, :score is L2 distance where lower is better.
With opts, :filter can be a structured metadata filter (:eq, :in,
:range, :gt, :lt, :and, :or, or :not) or a predicate over the
result map. Structured equality and membership use an inverted metadata
index, then only matching vectors are scored. Predicate filtering retains
the original candidate over-fetching behavior.
Returns nearest results best-first. For :cosine and :dot, :score is a similarity where higher is better. For :euclidean, :score is L2 distance where lower is better. With opts, `:filter` can be a structured metadata filter (`:eq`, `:in`, `:range`, `:gt`, `:lt`, `:and`, `:or`, or `:not`) or a predicate over the result map. Structured equality and membership use an inverted metadata index, then only matching vectors are scored. Predicate filtering retains the original candidate over-fetching behavior.
(size idx)Returns the number of indexed items.
Returns the number of indexed items.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |