milvus的collection操作
创建collection
import uuid
from pymilvus import (
connections,
FieldSchema, CollectionSchema, DataType,
Collection,
)
collection_name = "hello_milvus"
host = "192.168.230.71"
port = 19530
username = ""
password = ""
num_entities, dim = 5000, 3
print("start connecting to Milvus")
connections.connect("default", host=host, port=port,user=username,password=password)
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.FLOAT16_VECTOR, dim=dim)
]
schema = CollectionSchema(fields, "hello_milvus is the simplest demo to introduce the APIs")
print("Create collection `hello_world`")
coll = Collection(collection_name, schema, consistency_level="Bounded",shards_num=1)
print("done")
Collection()是一个构造函数,定义如下:
class Collection:
def __init__(
self,
name: str,
schema: Optional[CollectionSchema] = None,
using: str = "default",
**kwargs,
) -> None:
name – the name of collection
schema – the schema of collection, defaults to None.
using – Milvus connection alias name, defaults to ‘default’.
**kwargs - 告诉python接受任意数量的关键字参数到这个字典中。
那milvus这里有哪些key?
看注释。
删除collection
coll.drop()
函数定义:
def drop(self, timeout: Optional[float] = None, **kwargs):
有一个timeout参数。
加载collection
功能:加载collection到内存。
coll.load()
函数定义:
def load(
self,
partition_names: Optional[list] = None,
replica_number: int = 1,
timeout: Optional[float] = None,
**kwargs,
)
参数说明:
coll.load() #阻塞
coll.load(_async=True) #非阻塞
utility.wait_for_loading_complete("hello_iterator")
释放collection
从内存中卸载。
coll.release()
描述collection
获取collection的信息
infos = coll.describe()
for key, value in infos.items():
print(key, value)