diff --git a/AI/WxMini/Milvus/T2_create_index.py b/AI/WxMini/Milvus/T2_create_index.py new file mode 100644 index 00000000..57417ec9 --- /dev/null +++ b/AI/WxMini/Milvus/T2_create_index.py @@ -0,0 +1,29 @@ +# create_index.py +from WxMini.Milvus.Utils.MilvusCollectionManager import MilvusCollectionManager +from WxMini.Milvus.Utils.MilvusConnectionPool import * +from WxMini.Milvus.Config.MulvusConfig import * + +# 1. 使用连接池管理 Milvus 连接 +milvus_pool = MilvusConnectionPool(host=MS_HOST, port=MS_PORT, max_connections=MS_MAX_CONNECTIONS) + +# 2. 从连接池中获取一个连接 +connection = milvus_pool.get_connection() + +# 3. 初始化集合管理器 +collection_name = MS_COLLECTION_NAME +collection_manager = MilvusCollectionManager(collection_name) + +# 4. 创建索引 +index_params = { + "index_type": "IVF_FLAT", # 使用 IVF_FLAT 索引类型 + "metric_type": "L2", # 使用 L2 距离度量方式 + "params": {"nlist": 128} # 设置 IVF_FLAT 的 nlist 参数 +} +collection_manager.create_index("embedding", index_params) +print("索引创建成功。") + +# 5. 释放连接 +milvus_pool.release_connection(connection) + +# 6. 关闭连接池 +milvus_pool.close() \ No newline at end of file diff --git a/AI/WxMini/Milvus/T2_insert_data.py b/AI/WxMini/Milvus/T3_insert_data.py similarity index 72% rename from AI/WxMini/Milvus/T2_insert_data.py rename to AI/WxMini/Milvus/T3_insert_data.py index 2afea069..0ba3ed9c 100644 --- a/AI/WxMini/Milvus/T2_insert_data.py +++ b/AI/WxMini/Milvus/T3_insert_data.py @@ -1,11 +1,8 @@ -# insert_data.py import random -from pymilvus import FieldSchema, DataType - +from WxMini.Milvus.Config.MulvusConfig import * from WxMini.Milvus.Utils.MilvusCollectionManager import MilvusCollectionManager from WxMini.Milvus.Utils.MilvusConnectionPool import * -from WxMini.Milvus.Config.MulvusConfig import * # 1. 使用连接池管理 Milvus 连接 milvus_pool = MilvusConnectionPool(host=MS_HOST, port=MS_PORT, max_connections=MS_MAX_CONNECTIONS) @@ -25,19 +22,12 @@ data = [ ] entities = [data] # 插入的数据 collection_manager.insert_data(entities) +print("数据插入成功。") -# 5. 创建索引 -index_params = { - "index_type": "IVF_FLAT", # 使用 IVF_FLAT 索引类型 - "metric_type": "L2", # 使用 L2 距离度量方式 - "params": {"nlist": 128} # 设置 IVF_FLAT 的 nlist 参数 -} -collection_manager.create_index("embedding", index_params) - -# 6. 加载集合到内存 +# 5. 加载集合到内存 collection_manager.load_collection() -# 7. 查询数据,验证插入是否成功 +# 6. 查询数据,验证插入是否成功 query_vector = [random.random() for _ in range(128)] # 随机生成一个查询向量 search_params = { "metric_type": "L2", # 使用 L2 距离度量方式 @@ -49,8 +39,8 @@ for hits in results: for hit in hits: print(f"ID: {hit.id}, Distance: {hit.distance}") -# 8. 释放连接 +# 7. 释放连接 milvus_pool.release_connection(connection) -# 9. 关闭连接池 +# 8. 关闭连接池 milvus_pool.close() \ No newline at end of file diff --git a/AI/WxMini/Milvus/T3_search_data.py b/AI/WxMini/Milvus/T4_search_data.py similarity index 94% rename from AI/WxMini/Milvus/T3_search_data.py rename to AI/WxMini/Milvus/T4_search_data.py index 08a10984..23fd744e 100644 --- a/AI/WxMini/Milvus/T3_search_data.py +++ b/AI/WxMini/Milvus/T4_search_data.py @@ -24,7 +24,7 @@ search_params = { "metric_type": "L2", # 使用 L2 距离度量方式 "params": {"nprobe": 10} # 设置 IVF_FLAT 的 nprobe 参数 } -results = collection_manager.search(query_vector, search_params, limit=2) +results = collection_manager.search(query_vector, search_params, limit=20) print("查询结果:") for hits in results: for hit in hits: