开启向量数据库的奇妙之旅
在数据科学和机器学习领域,Milvus是一个专为向量数据设计的开源数据库。它以其高性能和易于使用的特点,成为了处理大规模向量搜索任务的理想选择。如果你是Milvus的新手,这篇文章将带你一步步了解如何开始你的Milvus之旅。
什么是Milvus?
Milvus是一个开源的向量数据库,专为处理大规模向量数据而设计。它支持多种类型的向量搜索任务,包括但不限于最近邻搜索(Nearest Neighbor Search)。Milvus通过优化存储和计算资源的使用,使得在大数据环境下进行高效的向量搜索成为可能。它与主流的机器学习框架如TensorFlow和PyTorch兼容,使得数据科学家和开发者能够轻松地将Milvus集成到他们的工作流程中。
为什么选择Milvus?
选择Milvus的理由有很多。首先,它提供了高性能的向量搜索能力,这对于需要快速检索相似项的应用场景至关重要。其次,Milvus支持多种索引类型,包括Faiss、Annoy、HNSW等,这些索引技术可以帮助用户根据不同的需求选择合适的索引策略。此外,Milvus还提供了一个友好的用户界面和一个完整的API集,使得即使是初学者也能快速上手。
如何开始使用Milvus?
要开始使用Milvus,你需要遵循以下步骤:
- 安装 :访问官方GitHub页面下载并安装适合你操作系统的版本。
具体操作请查看https://milvus.io/docs/install_standalone-docker-compose.md,这里在安装之前请查看安装此款软件对应的一些requirements,
我这边选择的是tencent云(ubuntu 22.04LTS),docker形式安装docker 版本:27.4.1。安装完成之后输入sudo docker-compose ps,可以看到我装的是2.5.1的版本
- 数据库连接
在python 的命令行中输入pip install pymilvus==2.5.1,一会儿我们要用python进行连接
验证导包是否成功:
python
python3 -c "from pymilvus import Collection"
初次尝试连接
首先在vscode中连接tencent云
点击remote connecting 也就是最后一个,输入
python
ssh -i /path/to/your-private-key.pem root@your-server-public-ip
后面这个root@your-server-public-ip替换成
然后按照要求一直下一步就可以,下面开始使用milvus
新建数据库
python
name1="zibo_bbq"
from pymilvus import MilvusClient, DataType
#创建连接
client = MilvusClient(
uri="http://localhost:19530",
token="root:Milvus"
)
#建表
schema = MilvusClient.create_schema(
auto_id=False,
enable_dynamic_field=True,
)
#给表中增加字段,包含字段名称,字段类型,是否是主键等信息
schema.add_field(field_name="my_id", datatype=DataType.INT64, is_primary=True)
schema.add_field(field_name="emb", datatype=DataType.FLOAT_VECTOR, dim=3)
schema.add_field(field_name="my_varchar", datatype=DataType.VARCHAR, max_length=512)
##对向量进行检索需要增加这个index_params,不过新版的2.5这个是可选项
python
index_params = client.prepare_index_params()
index_params.add_index(
field_name="emb",
index_type="AUTOINDEX",
metric_type="COSINE"
)
##创建name1数据库,并建表
client.create_collection(
collection_name=name1,
schema=schema,
index_params=index_params
)
#准备数据
data = [
{"my_id": 0, "emb": [0.1, 0.2, 0.3], "my_varchar": "今天天气真好"},
{"my_id": 1, "emb": [0.3, 0.2, 0.2], "my_varchar": "天气真好"}
]
#插入数据
client.insert(
collection_name=name1,
data=data
)
#加载数据库并进行检索
client.load_collection(name1)
##这个是输出"my_varchar字段的内容
client.search(name1,[[0.2,0.3,0.3]],output_fields=["my_varchar"])
执行之后,你可以看到结果被正确的检索出来
现在你已经知道了如何开始使用Milvus了。赶快动手实践吧!