主要特性
全面的相似度指标
Milvus 支持各种常用的相似度计算指标,包括欧氏距离、内积、汉明距离和杰卡德距离等。你可以根据应用需求来选择最有效的向量相似度计算方式。
业界领先的性能
Milvus 基于高度优化的 Approximate Nearest Neighbor Search (ANNS) 索引库构建,包括 faiss、 annoy、和 hnswlib 等。你可以针对不同使用场景选择不同的索引类型。
动态数据管理
你可以随时对数据进行插入、删除、搜索、更新等操作而无需受到静态数据带来的困扰。
近实时搜索
近实时搜索指的是,插入 Milvus 的数据在默认 1 秒后即被存入存储设备并能被搜索到。详情请参阅 Search。
高成本效益
Milvus 充分利用现代处理器的并行计算能力,可以在单台通用服务器上完成对十亿级数据的毫秒级搜索。
支持多种数据类型和高级搜索(即将上线)
Milvus 的数据记录中的字段支持多种数据类型。你还可以对一个或多个字段使用高级搜索,例如过滤、排序和聚合。
高扩展性和可靠性
你可以在分布式环境中部署 Milvus。如果要对集群扩容或者增加可靠性,你只需增加节点。
云原生
你可以轻松在公有云、私有云、或混合云上运行 Milvus。
简单易用
Milvus 提供了易用的 Python、Java、Go 和 C++ SDK,另外还提供了 RESTful API。
预写式日志
Milvus 实现了类似数据库系统的 WAL(预写式日志,Write Ahead Log)。任何对于数据的修改操作在进入 Milvus 之前会先存储成为日志,然后再写入 Milvus。一旦在写入 Milvus 过程中遭遇失败(如磁盘空间不足、内存耗尽),Milvus 重启时会从日志中恢复之前没有完成的操作,重新执行。详情请参阅 预写式日志。
DSL
Milvus 提供了基于 JSON 结构的 DSL(领域特定语言,Domain-specific language)。你可以使用 DSL 灵活地进行查询。
Mishards
Mishards 是一个用 Python 开发的 Milvus 集群分片中间件,可处理请求转发、读写分离、水平扩展、动态扩容(使得内存和算力可以无限扩容)。详情请参阅 Mishards。
异构计算
Milvus 能够调度多个 GPU 进行向量搜索和索引建立。利用 GPU 强大的并行运算能力,Milvus 在大批量查询和向量索引建立等高耗时任务上性能表现优异。
向量索引
Milvus 支持基于 Faiss、NMSLIB 和 Annoy 的树、图和量化等多种索引。关于向量索引的详情,请参阅 向量索引。而对于索引的选择和索引参数的选择,请参阅 性能调优。
监控与告警
Milvus 使用 Prometheus 作为监控和性能指标存储方案,使用 Grafana 作为可视化组件进行数据展示。详情请参阅 监控。