Milvus 新版本 v0.11.0 重磅发布!新增标量字段过滤功能,使用更灵活!

发布时间:2020-10-16

版本兼容

 

升级必看 ⚠️

1. 调整了 partition tag 的支持字符集:

  • 不支持使用英文字母、数字、"_"、"$" 以外的字符命名 partition tag。

  • partition tag 的首字母不支持使用英文字母或下划线以外的字符。

2. 服务端配置文件结构调整

  • server_config.yaml 更名为 milvus.yaml,

  • 配置参数兼容 a.b.c: value 的展平格式。

3. 调整了二值型向量支持索引名称:

  • IVF_FLAT 变更为 BIN_IVF_FLAT

  • FLAT变更为 BIN_FLAT

4. 移除原有的 CreateCollection() 方法。

新增的 CreateCollection() 方法删除了原有的 index_file_size 参数,新增 segment_row_limit 参数用于设置单个数据段文件大小的上限和下限。单个数据段文件的值域范围为 [ 1 × segment_row_limit, 2 × segment_row_limit)。

5. 移除原有的 Search() 方法。

新增的 Search() 方法新增 MetricType 参数用于指定距离计算方式。

6. 移除原有的 GetIndexInfo() 方法。

改用 GetCollectionInfo() 获取相关数据。

7. v0.11.0 Milvus 暂不支持 Mishards 分布式方案。

8. Python SDK 和 Java SDK 会在操作失败时抛出异常。

9. RESTful API 支持分页读取实体。

详见 collections/{collection_name}/entities (GET)

 

新增功能

1. 标量字段过滤

支持在插入向量数据时携带与该向量相关的标量数据。

支持在查询时利用标量数据过滤查询结果:

标量数据支持 TermQuery 和 RangeQuery 两种匹配模式。后者支持以下四种运算符:

  • 大于:gt

  • 大于等于:gte

  • 小于:lt

  • 小于等于:lte

  • 在标量匹配和向量查询之间支持 MUSTMUST_NOT 和 SHOULD 三种逻辑组合。

  • 支持在查询结果中返回结果向量相关的标量字段。

  • 支持在标量数据上创建索引加速结构化数据的过滤。

2. 支持在查询时指定距离计算方式

  • 如果查询时指定的 MetricType 与建索引时设置的 MetricType 一致,Milvus 使用索引查询;

  • 如果指定的 MetricType 与建索引时设置的 MetricType 不一致,Milvus 会进行暴搜。

 

主要改进

1. 升级第三方依赖 oatpp

 升级第三方依赖 oatpp 至更为稳定的 v1.1.0 版本。

2. 重写 SQLite 后端操作

移除第三方依赖 sqlite_orm。

3. 重组 WAL 目录结构

新版 WAL 的目录结构按照 collection 存储相关数据。

4. 元数据快照

支持基于元数据快照的搜索:进行数据插入、删除操作后 Milvus 会自动为元数据产生包含版本信息的快照并缓存至内存中,查询请求可以使用缓存的对应版本中进行。

5. 分离索引和原始数据

IVFFLAT 和 HNSW 两种索引的 **indexfile** 文件不再包含原始向量数据,改用向量的偏移量以减小硬盘占用。

 

API 变更

  • RESTful API

  • Python

  • Java

  • C++

 

删除 API

  • GetIndexInfo

点击左下角的 阅读原文 查看完整 release note!

升级攻略请点此收藏:Milvus 迁移升级攻略

 

欢迎加入 Milvus 社区

github.com/milvus-io/milvus    源码

milvus.io    官网

milvusio.slack.com    Slack 社区

zhihu.com/org/zilliz-11/columns    知乎

zilliz.blog.csdn.net    CSDN 博客

space.bilibili.com/478166626    Bilibili