Vector

Vector datasets allow you to store your own vectors so that they can be efficiently queried later. The dimension of vectors has to match the dimension specified when creating the dataset.

Create a Dataset

Create a dataset with Vector type which tells AnnDB to skip any pre-processing and embedding, and store the vectors as is. The distance metric and dimension cannot be changed later.

In order to manage data in your dataset, create a corresponding dataset instance using the client.

dataset = client.vector('<DATASET_NAME>')

Python client accepts either a list of floats or a NumPy array as vectors.

result = dataset.search([0.4506, -0.6739, -0.2360, -1.3630, ...], 10)

for item in result:
    print(item.id, item.metadata)

Insert

# Single item
id = dataset.insert(
    [0.4506, -0.6739, -0.2360, -1.3630, ...],
    metadata={'key': 'value'}
)
# Batch
result = dataset.insert_batch([
    anndb_api.VectorItem(
        None,
        [0.4506, -0.6739, -0.2360, -1.3630, ...],
        {'key': 'value'}
    ),
    ...
])

for r in result:
    print(r.id, r.error)

Update

# Single item
id = dataset.update(
    id,
    [0.4506, -0.6739, -0.2360, -1.3630, ...],
    metadata={'key': 'value'}
)
# Batch
result = dataset.update_batch([
    anndb_api.VectorItem(
        id,
        [0.4506, -0.6739, -0.2360, -1.3630, ...],
        {'key': 'value'}
    ),
    ...
])

for r in result:
    print(r.id, r.error)

Delete

# Single item
dataset.delete(id)
# Batch
result = dataset.delete_batch([id, ...])

for r in result:
    print(r.id, r.error)

Last updated