import csv
import ngtpy
ngtpy.create(path=b'index', dimension=128, distance_type="L2")
objects = []
with open(b'../../data/sift-dataset-5k.tsv', 'r') as fp:
for object in csv.reader(fp, delimiter='\t'):
objects.append(object[0:128])
index = ngtpy.Index(b'index')
index.batch_insert(objects)
index.save()
index.close()
index = ngtpy.Index(b'index')
with open(b'../../data/sift-query-3.tsv', 'r') as fp:
query = list(csv.reader(fp, delimiter='\t'))
results = index.search(query[0], size=5)
print('ID\tDistance')
for result in results:
print('{}\t{}'.format(*result))
print('# of distance computations=' + str(index.get_num_of_distance_computations()))
object = index.get_object(4078)
results = index.search(object, size=5)
print('\nID\tDistance')
for result in results:
print('{}\t{}'.format(*result))
print('# of distance computations=' + str(index.get_num_of_distance_computations()))
with open(b'../../data/sift-dataset-5k.tsv', 'r') as fp:
for object in csv.reader(fp, delimiter='\t'):
objectID = index.insert(object[0:128])
if objectID % 1000 == 0:
print('Processed {} objects.'.format(objectID))
index.build_index()
results = index.search(query[0], size=6)
print('\nID\tDistance')
for result in results:
print('{}\t{}'.format(*result))
print('# of distance computations=' + str(index.get_num_of_distance_computations()))
index.remove(3030)
results = index.search(query[0], size=6)
print('\nID\tDistance')
for result in results:
print('{}\t{}'.format(*result))
print('# of distance computations=' + str(index.get_num_of_distance_computations()))
index.save()
index.close()