---
url: /milvus/introduction.md
description: 介绍什么是Milvus，Milvus支持的搜索类型，Milvus的部署方式。
---

# 认识向量数据库——Milvus

最近在做一个搜索项目，通过关键词搜索与向量搜索的结合期望获得更好的搜索体验和效果。关键词搜索直接基于ES实现，那么向量搜索应该如何实现呢？

目前很多数据库都已经支持了向量查询的能力，比如ES、PG等，然而在测试过程中都出现了或多或少的痛点，随即我们决定选择一款开源免费的高性能、高扩展的向量数据库——Milvus。

## 什么是Milvus

Milvus 是一种高性能、高扩展性的向量数据库，开源许可为Apache2.0。

![Milvus](/img/e52eadc4-182c-4f35-8b7b-f142194e3a89.png)

Milvus 提供强大的数据建模功能，使您能够将非结构化或多模式数据组织成结构化集合。它支持多种数据类型，适用于不同的属性建模，包括常见的数字和字符类型、各种向量类型、数组、集合和 JSON，为您节省了维护多个数据库系统的精力。

![Milvus](/img/771b3d4a-dc80-48c6-883c-45de5e59837e.png)

## 部署Milvus的方式

Milvus 提供三种部署模式，满足各种数据规模的使用--从本地开发到数百亿向量的大规模集群：

* Milvus Lite 是一个 Python 库，可以轻松集成到您的应用程序中。作为 Milvus 的轻量级版本，它非常适合快速原型开发，或在资源有限的边缘设备上运行。
* Milvus Standalone 是单机服务器部署，所有组件都捆绑在一个 Docker 镜像中，方便部署。
* Milvus Distributed 可部署在集群上，采用云原生架构，专为十亿规模甚至更大的场景而设计。该架构可确保关键组件的冗余。

## Milvus支持的搜索类型

Milvus 支持各种类型的搜索功能，以满足不同用例的需求：

* ANN 搜索：查找最接近查询向量的前K个向量。
* 过滤搜索：在指定的过滤条件下执行 ANN 搜索。
* 范围搜索：查找查询向量指定半径范围内的向量。
* 混合搜索：基于多个向量场进行 ANN 搜索。
* 关键词搜索基于 BM25 的关键词搜索。
* 重新排序根据附加标准或辅助算法调整搜索结果的顺序，完善最初的 ANN 搜索结果。
* 获取：根据主键检索数据。
* 查询使用特定表达式检索数据。

## 进阶

Milvus给我带来了很多惊喜，让我重新理解了什么才算是一款优秀的向量数据库产品——不限制开发者的想象。如果你也对Milvus有兴趣，可以关注：遇码，回复：**milvus**获取官方文档。
