milvus 向量搜索
milvus
A cloud-native vector database, storage for next generation AI applications
项目地址:https://gitcode.com/gh_mirrors/mi/milvus
免费下载资源
·
1. 简介
milvus存储向量化的文本,可以快速查询top-N条相似记录。
milvus安装使用中的一些坑,参考:https://zhuanlan.zhihu.com/p/91444753
在Linux上采用docker安装milvus更简单,参见:https://www.milvus.io/cn/docs/install_milvus.md
需要注意的是,安装gpu版本的milvus需要安装19以上的docker,参考文档:https://blog.csdn.net/weixin_43110668/article/details/122739314
2. 常用语法
- 连接milvus
milvus = Milvus(ip, hort)
- 创建、删除表,判断表是否存在
当向量数据不断导入时,Milvus 会把数据增量式地合并成文件,当某个文件达到 index_file_size 所设置的值之后,该文件就不再接受新的数据,Milvus 会把新的数据存成另外一个文件。
Milvus 在进行搜索时,是依次对每个索引文件进行搜索。当 index_file_size 从1024改为2048时,搜索性能约提升30%~50%。但该值设的过大,有可能导致大文件无法加载进内存。常用的 index_file_size 为1024MB和2048MB。
status, ok = milvus.has_collection(collection_name)
param = {
'collection_name': collection_name, # 表名
'dimension': 200, # 向量维度
'index_file_size': 1024, # 指定数据存储时单个文件的大小
'metric_type': MetricType.IP # optional
}
milvus.create_collection(param)
milvus.drop_collection(collection_name)
- 向量归一化
只有当数据做过归一化,Metric_type
的L2
和IP
计算的向量相似度结果才会等价
def normaliz_data(vec_list):
"""
嵌套列表的数据归一化
:param vec_list:
:return:
"""
for i in range(len(vec_list)):
vec = vec_list[i]
square_sum = reduce(lambda x, y: x + y, map(lambda x: x * x, vec))
sqrt_square_sum = np.sqrt(square_sum)
coef = 1 / sqrt_square_sum
vec = list(map(lambda x: x * coef, vec))
vec_list[i] = vec
return vec_list
- 插入向量
ids只能接受int
数据
status, ids = milvus.insert(collection_name=collection_name,
records=insert_vectors,
ids=ids_list)
- TOP-N相似查询
当N ≤ 20
时,params
参数不用配置
search_param = {"search_length": 100}
status, results = milvus.search(collection_name=collection_name,
query_records=vector_list,
top_k=query_top, params=search_param)
for p, re in enumerate(results[0]):
temp_dict = {}
temp_dict["Id"] = re.id
temp_dict["Similarity"] = re.distance
GitHub 加速计划 / mi / milvus
28.68 K
2.76 K
下载
A cloud-native vector database, storage for next generation AI applications
最近提交(Master分支:2 个月前 )
b792b199
See #37234
---------
Signed-off-by: Ted Xu <ted.xu@zilliz.com> 19 小时前
d119a254
issue: #37257
Signed-off-by: wayblink <anyang.wang@zilliz.com> 20 小时前
更多推荐
已为社区贡献2条内容
所有评论(0)