IBM Cloud Docs
Milvus

Milvus

Milvus 创建一个收藏

在 Milvus 中,集合用于存储和管理实体。 Milvus 集合相当于关系数据库管理系统(RDBMS)中的表。

请参阅 “创建收藏集”,了解如何在 Milvus 中创建收藏集。

Milvus插入数据

Milvus 支持标量字段的默认值,但主键字段除外。 在数据插入期间,可以将某些字段保留为空。

有关详细信息,请参阅For more information, see 插入条目

建议分批插入数据,原因如下:

  • 单个 GRPC API 调用中可提取的向量数量受以下限制:Kafka。 在 IBM Cloud中,消息大小的最大限制限制为 1 MB。

  • 一次可插入的最大行数取决于您尝试采集的数据的总大小。 随着向量维数的增加和行中非向量字段的存在,精确数字会减少。

使用批量插入 API 来插入大于 500,000 个向量的数据集。 在采集更大的数据集时,批量插入 API 的性能优于批量插入 API。 使用.npy文件是处理大型数据集的推荐方法。 如果要使用批处理插入 API,请在每 500,000 行之后手动清空集合。 有关详细信息,请参阅For more information, see 批量插入 API

Milvus创建索引

Milvus进行近似最近邻(ANN)搜索之前,请先创建索引。

IBM 正式支持以下索引:

未在此列表中列出的索引可能有效,但 IBM不会验证这些索引。

当一段中的行数少于1024时,Milvus 将不会为该段创建任何索引。 相反,它将默认使用 brute-force 进行查询操作。 一旦段中的行数超过此阈值,Milvus 将自动开始构建索引。

  • 新南威尔士州
  • SCANN
  • FLAT
  • IVF_FLAT
  • IVF_PQ

您可以通过指定向量字段名称和索引参数来创建索引。 有关详细信息,请参阅For more information, see 索引向量场

Milvus进行向量相似性搜索

在 Milvus 中,您可以在为搜索场景准备参数后进行向量相似性搜索。

  • 有关单向量和多向量搜索的更多信息,请参阅 向量相似性搜索
  • 有关混合(多向量)搜索的详细信息,请参阅 混合搜索
  • 如需了解有关混合动力的更多信息,请通过 GroupBy 搜索,查看 混合动力 GroupBy 搜索 中的 GroupBy 增强功能部分。

Milvus基于标量过滤进行查询

在 Milvus 中,您可以根据标量过滤进行查询。 有关详细信息,请参阅For more information, see 获取和标量查询

您可以执行以下搜索类型:

  • 范围搜索:查找距离查询向量特定距离范围内的向量。 有关详细信息,请参阅For more information, see 范围搜索
  • 分组检索:按照特定字段获取结果,保证结果的多样性。 有关详细信息,请参阅For more information, see 分组搜索

在大型数据集上运行具有标量过滤的搜索查询时,调整限制参数以有效管理查询结果很重要。 使用以下方法来设置 limit 范围:

hello_milvus.query(expr=query_condition, output_fields=["random", "embeddings"], limit=100,offset=0)

值的总和 limitoffset 参数必须在范围内[1,16384]。

使用主键从 Milvus 中删除实体

在 Milvus 中,您可以使用主键删除实体。 准备过滤要删除的实体的布尔表达式。

有关更多信息,请参阅 删除实体

Milvus

一旦Milvus腕表,就再也回不去了。 无法恢复已删除的数据。

在您的 .ipynb 或 Python 脚本中添加以下内容,以删除一个集合。

from pymilvus import utility
utility.drop_collection(<collection name>)

最佳实践

以下是一些最佳做法:

  • 如果存在长字符串(超过256个字符),请将非矢量字段保留在 Milvus 之外。 您可以将它们保存在 COS 存储桶或存储桶中并执行参考搜索。
  • 确保PyMilvus版本是2.4.0或更高版本。 Milvus 2.4.0 及以上版本支持稀疏向量搜索、混合搜索( sparse_dense ) 以及多向量搜索。
  • 使用批量插入加载集合时,请遵循以下模式:批量插入,释放内存,然后重复该过程。
  • 不要同时并行提取所有集合。 按顺序摄取并在摄取之间冲洗。
  • 每个集合的最大尺寸应与 T 恤尺寸所支持的最大矢量数量相对应。
  • 如果加载了多个集合或分区,请确保所有加载实体中的向量总和不超过 T-shirt 大小的限制。 只要加载的矢量数量在限制范围内,您仍然可以存储比 T 恤尺寸限制更多的矢量。

在 Milvus 升级期间,响应可能会稍有延迟,大约20秒。 正在进行的搜索和向上插入查询可能会失败。 您可以立即重试查询。

笔记本样本 Milvus

通过这些示例笔记本,您可以按照分步教程试用 Milvus 功能。 如需查看笔记本样本,请访问 Milvus 笔记本样本