AnnDB
  • About AnnDB
  • Quickstart
  • Datasets
    • Images
    • Semantic Search
    • Question Answering
    • Vector
Powered by GitBook
On this page
  • Create a Dataset
  • Search
  • Insert
  • Update
  • Delete
  1. Datasets

Semantic Search

PreviousImagesNextQuestion Answering

Last updated 4 years ago

Semantic textual similarity datasets allow you to go beyond traditional keyword and exact-match search. AnnDB uses state-of-the-art machine learning models to provide accurate and semantically relevant results. Using the API, you can build a dataset of sentences which you can then query using natural language queries to find semantically similar information.

Create a Dataset

Create a dataset with Semantic Similarity type which tells AnnDB to encode your sentences to vectors.

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

dataset = client.text('<DATASET_NAME>')
dataset = client.text("<DATASET_NAME>")

Search

result = dataset.search('query', 10)

for item in result:
    print(item.id, item.metadata)
result = dataset.search("query", 10)

result.each do |item|
    puts item.id, item.metadata
end

Insert

# Single item
id = dataset.insert('my sentence', metadata={'key': 'value'})
# Batch
result = dataset.insert_batch([
    anndb_api.TextItem(None, 'my sentence', {'key': 'value'}),
    ...
])

for r in result:
    print(r.id, r.error)
id = dataset.insert("my sentence", metadata={ "key": "value" })
result = dataset.insert_batch([
    {
        text: "my sentence",
        metadata: { "key": "value" }
    },
    ...
])

result.each { |r|
    puts r[:id], r[:error]
}

Update

# Single item
id = dataset.update(id, 'my updated sentence', metadata={'key': 'value'})
# Batch
result = dataset.update_batch([
    anndb_api.TextItem(id, 'my updated sentence', {'key': 'value'}),
    ...
])

for r in result:
    print(r.id, r.error)
id = dataset.update(id, "my updated sentence", metadata={ "key": "value" })
result = dataset.update_batch([
    {
        id: id,
        text: "my updated sentence",
        metadata: { "key": "value" }
    },
    ...
])

result.each { |r|
    puts 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)
dataset.delete(id)
result = dataset.delete_batch([id, ...])

result.each { |r|
    puts r[:id], r[:error]
}