5.pymilvus基本api使用

from pymilvus import (
    connections,
    db,
    FieldSchema,
    CollectionSchema,
    DataType,
    Collection
)
# milvus数据库连接信息
from pymilvus.orm import utility

collection_name = "user_milvus"
host = "192.168.171.130"
port = "19530"
username = ""
password = ""
# 建立连接
# 这里的default并不是指default数据库,可以进入方法内部得知,指定数据库是参数db_name,默认值为default
connections.connect("default", host=host, port=port, user=username, password=password)
# 创建数据库database
database = db.create_database("book")
# 选择一个数据库使用
db.using_database("book")
num_entities, dim = 5000, 3
# 定义字段
fields = [
    FieldSchema(name="pk", dtype=DataType.INT64, is_primary=True, auto_id=False),
    FieldSchema(name="random", dtype=DataType.DOUBLE),
    FieldSchema(name="comment", dtype=DataType.VARCHAR, max_length=200),
    FieldSchema(name="embeddings", dtype=DataType.FLOAT_VECTOR, dim=dim)
]
schema = CollectionSchema(fields=fields, description="this is a demo")
# 创建collection
coll = Collection(collection_name, schema, consistency_level="Bounded", shards_num=1)
# 使用collection,不能传递后面的参数
coll = Collection(collection_name)
# 给embedding向量字段创建索引,创建索引后才能load进内存
index_params = {
    "index_type": "HNSW",
    "metric_type": "L2",
    "params": {
        "M": 16,
        "efConstruction": 60
    }
}
coll.create_index(
  field_name="embeddings",
  index_params=index_params,
  index_name="idx_em"
)


# collection加载到内存,阻塞函数,等待时间长
coll.load()
# 非阻塞load
# coll.load(_async=True)
# utility.wait_for_loading_complete(collection_name)

# 获取collection的信息
infos = coll.describe()
for key, value in infos.items():
    print(key, value)

# collection从内存中释放出来
# coll.release()

# 删除collection
# coll.drop()


print("done")

你可能感兴趣的:(向量数据库milvus,milvus,数据库,向量数据库)