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
-
在标量匹配和向量查询之间支持
MUST
,MUST_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.****.net **** 博客
space.bilibili.com/478166626 Bilibili