102 lines
3.6 KiB
Python
102 lines
3.6 KiB
Python
from pymilvus import connections, FieldSchema, CollectionSchema, DataType, Collection,MilvusClient
|
|
from config import MILVUS_CLIENT
|
|
import time
|
|
from datetime import datetime, timedelta
|
|
|
|
def create_partition_by_hour(current_hour):
|
|
# 连接到 Milvus 服务器
|
|
connections.connect("default",uri=MILVUS_CLIENT)
|
|
# 获取集合
|
|
collection_name = "pdf_measure_v4"
|
|
collection = Collection(collection_name)
|
|
|
|
# 创建当前小时的分区
|
|
partition_name = f"partition_{current_hour}"
|
|
if not collection.has_partition(partition_name):
|
|
collection.create_partition(partition_name)
|
|
print(f"Created partition: {partition_name}")
|
|
partition = collection.partition(partition_name)
|
|
partition.load()
|
|
|
|
# 获取所有分区
|
|
partitions = collection.partitions
|
|
# 删除所有分区(除了默认分区和当前分区)
|
|
for partition in partitions:
|
|
name = partition.name
|
|
if name not in ["_default", partition_name]: # 保留默认分区
|
|
pre_partition = collection.partition(name)
|
|
pre_partition.release()
|
|
collection.drop_partition(name)
|
|
print(f"Partition '{name}' deleted.")
|
|
|
|
|
|
|
|
|
|
|
|
# data = []
|
|
# measure_data = {}
|
|
# vector = [0.61865162262130161] * 1536
|
|
# measure_data['vector'] = vector
|
|
# measure_data['table_num'] = int(2)
|
|
# measure_data['table_index'] = int(2)
|
|
# measure_data['measure_name'] = "234234"
|
|
# measure_data['measure_value'] = "23432"
|
|
# measure_data['measure_unit'] = "123423"
|
|
# measure_data['file_id'] = "100000"
|
|
#
|
|
# data.append(measure_data)
|
|
# res = client.insert(
|
|
# collection_name=collection_name,
|
|
# data=data,
|
|
# partition_name=partition_name
|
|
# )
|
|
|
|
# filter_str = 'file_id == "'+"2122"+'"'
|
|
# res = client.search(
|
|
# collection_name=collection_name, # Replace with the actual name of your collection
|
|
# # Replace with your query vector
|
|
# data=data,
|
|
# limit=3, # Max. number of search results to return
|
|
# search_params={"metric_type": "COSINE", "params": {}}, # Search parameters
|
|
# output_fields=["measure_name", "measure_value", "table_num", "table_index", "measure_unit"],
|
|
# filter=filter_str,
|
|
# partition_name=partition_name
|
|
# )
|
|
# print(f"============================={res}")
|
|
|
|
|
|
|
|
|
|
# from pymilvus import connections, CollectionSchema, Collection,utility,FieldSchema,DataType
|
|
# # 连接到 B 服务器上的 Milvus
|
|
# # connections.connect(host='124.70.129.232', port='19530')# 测试服务器
|
|
# connections.connect(host='1.94.60.103', port='19530')# 测试服务器
|
|
# # # 获取集合列表
|
|
# utility.drop_collection("pdf_measure_v4")
|
|
#
|
|
# # 定义字段
|
|
# fields = [
|
|
# FieldSchema(name="id", dtype=DataType.INT64, is_primary=True, auto_id=True),
|
|
# FieldSchema(name="vector", dtype=DataType.FLOAT_VECTOR, dim=1536),
|
|
# FieldSchema(name="table_num", dtype=DataType.INT16),
|
|
# FieldSchema(name="table_index", dtype=DataType.INT16),
|
|
# FieldSchema(name="measure_name", dtype=DataType.VARCHAR, max_length=200),
|
|
# FieldSchema(name="measure_value", dtype=DataType.VARCHAR, max_length=200),
|
|
# FieldSchema(name="file_id", dtype=DataType.VARCHAR, max_length=200),
|
|
# FieldSchema(name="measure_unit", dtype=DataType.VARCHAR, max_length=200)
|
|
# ]
|
|
#
|
|
# # 定义集合的 schema
|
|
# schema = CollectionSchema(fields=fields, description="My Milvus collection")
|
|
#
|
|
# # 创建集合
|
|
# collection = Collection(name="pdf_measure_v4", schema=schema)
|
|
#
|
|
# collection = Collection("pdf_measure_v4")
|
|
# index_params = {
|
|
# "index_type": "IVF_FLAT",
|
|
# "metric_type": "COSINE",
|
|
# "params": {"nlist": 128}
|
|
# }
|
|
# collection.create_index(field_name="vector", index_params=index_params)
|
|
# collection.load() |