Annoy 安装很简单:
pip install --user annoy
Annoy是一个基于文件的向量数据库,最主要的三个操作如下:
a.save(fn, prefault=False) saves the index to disk and loads it (see next function). After saving, no more items can be added.
a.load(fn, prefault=False) loads (mmaps) an index from disk. If prefault is set to True, it will pre-read the entire file into memory (using mmap with MAP_POPULATE). Default is False.
a.unload() unloads.
a.get_nns_by_vector(v, n, search_k=-1, include_distances=False) same but query by vector v.
save是保存成索引文件,load是加载索引问题,unload是卸载索引文件。
这里面需要注意的一个关键问题是: 索引文件被进程load以后,才可以进行检索等操作get_nns_by_vector。如果索引文件被某进程A load,那么同时还可以被B load,即支持多进程加载索引文件。可是,这时如果索引内容有变化,想要重新save索引文件,就会报错,即load中的索引文件是无法被