By default after indexing this many items progress will be reported to registered progress listeners.
By default after indexing this many items progress will be reported to registered progress listeners.
Add a new item to the index.
Add a new item to the index. If an item with the same identifier already exists in the index then :
If deletes are disabled on this index the method will return false and the item will not be updated.
If deletes are enabled and the version of the item has is higher version than that of the item currently stored in the index the old item will be removed and the new item added, otherwise this method will return false and the item will not be updated.
the item to add to the index
true if the item was added to the index
IllegalArgumentException
thrown when the item has the wrong dimensionality
Add multiple items to the index.
Add multiple items to the index. Reports progress to the passed in progress listener every progressUpdateInterval elements indexed.
the items to add to the index
number of threads to use for parallel indexing
listener to report progress to
after indexing this many items progress will be reported
Returns an item by its identifier.
Returns an item by its identifier. If the item does not exist in the index a NoSuchElementException is thrown.
unique identifier of the item to return
the item
Read only view on top of this index that uses pairwise comparision when doing distance search.
Read only view on top of this index that uses pairwise comparision when doing distance search. And as such can be used as a baseline for assessing the precision of the index. Searches will be really slow but give the correct result every time.
Check if an item is contained in this index
Check if an item is contained in this index
unique identifier of the item
true if an item is contained in this index, false otherwise
the java index to delegate calls to
the java index to delegate calls to
This distance function.
The ordering used to compare distances
The size of the dynamic list for the nearest neighbors (used during the search)
Returns the parameter has the same meaning as ef, but controls the index time / index precision.
Sets the size of the dynamic list for the nearest neighbors (used during the search)
Find the items closest to the passed in vector.
Find the items closest to the passed in vector.
the vector
number of items to return
the items closest to the passed in vector
Find the items closest to the item identified by the passed in id.
Find the items closest to the item identified by the passed in id. If the id does not match an item an empty list is returned. the element itself is not included in the response.
of the item to find the neighbors of
number of neighbors to return
the items closest to the item
Optionally return an item by its identifier
Optionally return an item by its identifier
unique identifier of the item to return
the item
The serializer used to serialize item id's when saving the index.
The serializer used to serialize items when saving the index
The number of bi-directional links created for every new element during construction.
The maximum number of items the index can hold.
Removes an item from the index.
Removes an item from the index. If the index does not support deletes or an item with the same identifier exists in the index with a higher version number, then this method will return false and the item will not be removed.
unique identifier or the item to remove
version of the delete. If your items don't override version use 0
true if an item was removed from the index
True if removes are enabled for this index.
Saves the index to a path.
Saves the index to a path. Saving is not thread safe and you should not modify the index while saving.
path to write the index to
Saves the index to a file.
Saves the index to a file. Saving is not thread safe and you should not modify the index while saving.
file to write the index to
Saves the index to an OutputStream.
Saves the index to an OutputStream. Saving is not thread safe and you should not modify the index while saving.
the output stream to write the index to
(Changed in version 2.9.0) The behavior of scanRight
has changed. The previous behavior can be reproduced with scanRight.reverse.
Returns the size of the index.
Returns the size of the index.
size of the index
(Changed in version 2.9.0) transpose
throws an IllegalArgumentException
if collections are not uniformly sized.
Implementation of Index that implements the hnsw algorithm.
Type of the external identifier of an item
Type of the vector to perform distance calculation on
Type of items stored in the index
Type of distance between items (expect any numeric type: float, double, int, ..)
See https://arxiv.org/abs/1603.09320 for more information.