索引的作用是加速大型数据集上的查询。
目前,向量字段仅支持一种索引类型,即只能创建一个索引。
milvus支持的向量索引类型大部分使用近似最近邻搜索算法(ANNS,approximate nearest neighbors search) 。ANNS 的核心思想不再局限于返回最准确的结果,而是仅搜索目标的邻居。 ANNS 通过在可接受的范围内牺牲准确性来提高检索效率。
暴力搜索。召回率100%。
对于需要完美精度并依赖于相对较小(百万级)数据集的向量相似性搜索应用程序,FLAT 索引是一个不错的选择。 FLAT不压缩向量,是唯一能保证精确搜索结果的索引。
FLAT 是准确的,因为它采用穷尽的搜索方法,这意味着对于每个查询,目标输入都会与数据集中的每组向量进行比较。这使得 FLAT 成为我们列表中最慢的索引,并且不太适合查询大量向量数据。 Milvus 中 FLAT 索引不需要任何参数,使用它不需要数据训练。
创建其它索引需要耗费一定时间,FLAT是瞬间完成。
from pymilvus import (
connections,
Collection,
)
collection_name = "hello_milvus"
host = "192.168.230.71"
port = 19530
username = ""
password = ""
print("start connecting to Milvus")
connections.connect("default", host=host, port=port,user=username,password=password)
coll = Collection(collection_name, consistency_level="Bounded",shards_num=1)
print("Start creating index")
index_params = {
"index_type": "FLAT",
"metric_type": "L2",
"params": {}
}
coll.create_index(
field_name="embeddings",
index_params=index_params,
index_name="idx_em"
)
print("done")
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。