向量數據庫-Milvus快速入門

Milvus 概述 ????????

????????向量是神經網絡模型的輸出數據格式,可以有效地對信息進行編碼,在知識庫、語義搜索、檢索增強生成(RAG)等人工智能應用中發揮著舉足輕重的作用。

????????Milvus 是一個開源的向量數據庫,適合各種規模的人工智能應用。

????????Milvus 是一種高性能、高擴展性的向量數據庫,可在從筆記本電腦到大規模分布式系統等各種環境中高效運行。它既可以開源軟件的形式提供,也可以云服務的形式提供。

????????Milvus 是一個開源項目,以 Apache 2.0 許可發布。大多數貢獻者都是高性能計算(HPC)領域的專家,擅長構建大型系統和優化硬件感知代碼。核心貢獻者包括來自 Zilliz、ARM、NVIDIA、AMD、英特爾、Meta、IBM、Salesforce、阿里巴巴和微軟的專業人士。

Embeddings 和 Milvus

????????文本、圖像和音頻等非結構化數據格式各異,并帶有豐富的底層語義,因此分析起來極具挑戰性。為了處理這種復雜性,Embeddings 被用來將非結構化數據轉換成能夠捕捉其基本特征的數字向量。然后將這些向量存儲在向量數據庫中,從而實現快速、可擴展的搜索和分析。

????????Milvus 提供強大的數據建模功能,使您能夠將非結構化或多模式數據組織成結構化的 Collections。它支持多種數據類型,適用于不同的屬性模型,包括常見的數字和字符類型、各種向量類型、數組、集合和 JSON,為您節省了維護多個數據庫系統的精力。

Milvus 為何如此快速?

????????Milvus 從設計之初就是一個高效的向量數據庫系統。在大多數情況下,Milvus 的性能是其他向量數據庫的 2-5 倍。這種高性能是幾個關鍵設計決策的結果:

????????硬件感知優化 :為了讓 Milvus 適應各種硬件環境,????????專門針對多種硬件架構和平臺優化了其性能,包括 AVX512、SIMD、GPU 和 NVMe SSD。

????????高級搜索算法 :Milvus 支持多種內存和磁盤索引/搜索算法,包括 IVF、HNSW、DiskANN 等,所有這些算法都經過了深度優化。與 FAISS 和 HNSWLib 等流行實現相比,Milvus 的性能提高了 30%-70%。

????????C++ 搜索引擎向量數據庫性能的 80% 以上取決于其搜索引擎。由于 C++ 語言的高性能、底層優化和高效資源管理,Milvus 將 C++ 用于這一關鍵組件。最重要的是,Milvus 集成了大量硬件感知代碼優化,從匯編級向量到多線程并行化和調度,以充分利用硬件能力。

????????面向列 :Milvus 是面向列的向量數據庫系統。其主要優勢來自數據訪問模式。在執行查詢時,面向列的數據庫只讀取查詢中涉及的特定字段,而不是整行,這大大減少了訪問的數據量。此外,對基于列的數據的操作可以很容易地進行向量化,從而可以一次性在整個列中應用操作,進一步提高性能。

概念關系圖(邏輯結構)

Milvus數據庫
├── Collection集合
│ ? ├── Partition分區
│ ? │ ? └── Entity實體
│ ? │ ? ? ? └── Fields字段(向量 + 元數據)
│ ? ├── Schema結構
│ ? └── Index索引
├── 查詢操作(Search / Query)
└── 數據一致性機制

示例

1.環境準備

pip install pymilvus

2.連接

from pymilvus import MilvusClient
client = MilvusClient(uri='http://127.0.0.1:19530')

3.創建collection

    fields = [FieldSchema(name="id", dtype=DataType.INT64, is_primary=True, auto_id=True),FieldSchema(name="name", dtype=DataType.VARCHAR, max_length=64),FieldSchema(name="category", dtype=DataType.VARCHAR, max_length=64),#這里使用結巴分詞 FieldSchema(name="description", dtype=DataType.VARCHAR, max_length=1000, enable_analyzer=True,analyzer_params={"tokenizer": "jieba", "filter": ["cnalphanumonly"]}),# 向量維度 我這里使用openai的embedding生成的向量默認維度是1536# embedding_llm1.embed_documents(titles)FieldSchema(name="vector", dtype=DataType.FLOAT_VECTOR, dim=1536),# 稀疏向量字段FieldSchema(name="sparse_vector", dtype=DataType.SPARSE_FLOAT_VECTOR)
#添加的 BM25 函數,使得 Milvus 能夠:自動從 title 字段提取稀疏特征;
bm25_function = Function(name="bm25",input_field_names=["title"],output_field_names=["sparse_vector"],function_type=FunctionType.BM25,
)
schema = CollectionSchema(fields=fields,functions=[bm25_function], description="商品向量集合")
client.create_collection(collection_name=COLLECTION_NAME,schema=schema,consistency_level="Strong", # 一致性級別enable_dynamic_field=True,# 動態字段 如果設為 True,Milvus 將自動接受未在 schema 中定義的新字段數據,并將其存儲為 JSON 格式。auto_id=True # 自動生成ID。)

????????定義 schema 時啟用 BM25 函數,指定輸入字段為 title,輸出字段為 sparse_vector(稀疏向量),插入數據時只需提供原始文本,系統會自動調用 BM25 函數生成稀疏向量

????????BM25 是一種經典的信息檢索評分函數(ranking function),用于衡量查詢語句與文檔的相關性。它基于詞頻(TF)、逆文檔頻率(IDF)和文檔長度等因素對結果進行打分。

????????consistency_level是 Milvus 中用于控制 數據讀寫一致性 的參數,它決定了在進行查詢或檢索操作時,系統保證返回的數據與最新寫入數據之間的一致性程度
????????"Strong"強一致性:每次讀取都返回最新的數據,適用于對實時性要求高的場景。
????????"Session"會話一致性:在一個客戶端連接內保證一致性,適合多次查詢的連續操作。
????????"Bound"有界一致性:允許一定時間延遲,性能較好,適合容忍短暫延遲的場景。
????????"Eventually"最終一致性:不保證立即看到寫入結果,性能最優,但可能讀到舊數據

4.插入數據

測試數據:

電子產品類
運動型藍牙耳機
這款運動藍牙耳機專為運動愛好者打造。它采用藍牙5.2技術,連接穩定,即使在運動的過程中大幅度晃動也不會輕易斷連。擁有防水防汗的特性,其外殼經過特殊工藝處理,能有效抵御汗水和雨水的侵蝕,非常適合跑步、健身、騎行等運動場景。音質上,它采用了獨特的音腔設計,增強了低頻效果,讓節奏感強烈的運動音樂更加帶感。耳機采用掛耳式的人體工學設計,貼合耳部輪廓,硅膠材質的耳掛柔軟有彈性,長時間運動佩戴也不會覺得耳朵酸痛,并且穩固性極佳,運動時不會掉落。在續航方面表現不錯,一次充滿電可以連續使用7小時,滿足一場酣暢淋漓的運動所需。
電子產品類
降噪藍牙耳機
這款降噪藍牙耳機主打主動降噪功能。采用先進的藍牙5.3技術,連接穩定又迅速。它配備了專業的降噪芯片,能夠精準識別并過濾外界環境噪音,比如飛機的轟鳴聲、地鐵的嘈雜聲、辦公室的鍵盤敲擊聲等,最高可降低35dB的噪音,讓你沉浸在純凈的音樂世界中。音質方面,它采用了高品質的動圈單元,能夠呈現出豐富細膩的音樂細節,高音清亮,中音飽滿,低音深沉有力。耳機的耳罩采用了柔軟的蛋白皮材質,內部填充了高密度海綿,貼合耳部,佩戴起來非常舒適,長時間使用也不會有壓迫感。續航能力也相當出色,開啟降噪功能后可連續使用6小時,關閉降噪功能則能使用長達9小時。
電子產品類
骨傳導藍牙耳機
這款骨傳導藍牙耳機采用了創新的骨傳導技術,無需堵塞耳道就能傳遞聲音。它采用藍牙5.0技術,連接穩定,并且具備良好的兼容性,能與各種智能設備輕松配對。由于不堵塞耳道,在聽音樂的同時還能感知周圍環境的聲音,保障了使用時的安全性,適合戶外運動、騎行、跑步等場景。音質上,它雖然不能像傳統耳機那樣呈現極致的音質效果,但也能滿足日常基本的聽音樂和通話需求。耳機的機身采用了硅膠材質,柔軟有彈性,可隨意彎曲,佩戴起來十分輕便,僅重28克,并且貼合耳部,運動時不易掉落。續航方面,一次充滿電可連續使用5小時,小巧輕便的充電倉還能為耳機額外充電2 - 3次。
電子產品類
兒童藍牙耳機
這款兒童藍牙耳機專為兒童設計。采用藍牙5.0技術,連接穩定,操作簡單,方便兒童使用。它特別注重兒童的聽力保護,內置了音量限制功能,最大音量不會超過85dB,有效避免音量過大對兒童聽力造成損傷。音質方面,采用了適合兒童聽覺特點的音頻調校,聲音清晰、柔和,讓孩子們能聽到純真的音樂。耳機的頭帶采用了柔軟的硅膠材質,可調節長度,能適應不同年齡段兒童的頭圍大小,佩戴舒適且不會給孩子的頭部造成壓迫感。外觀設計十分可愛,有多種卡通造型和鮮艷的顏色可供選擇,深受孩子們的喜愛。續航能力也不錯,一次充滿電可連續使用4小時,滿足孩子日常聽故事、聽兒歌的需求。
電子產品類
商務藍牙耳機
這款商務藍牙耳機是商務人士的理想選擇。它采用藍牙5.3技術,連接穩定且低延遲,確保在商務通話中不會出現聲音卡頓或延遲的情況。配備了高清麥克風和智能降噪算法,能夠有效過濾周圍環境噪音,在嘈雜的辦公室、咖啡館等場所也能保證清晰的通話質量。音質方面,聲音清晰、準確,能讓對方清楚地聽到你的表達。耳機的設計簡約時尚,采用了入耳式設計,小巧輕便,便于攜帶。耳帽采用了親膚的硅膠材質,佩戴舒適,長時間通話也不會感到不適。續航能力較強,一次充滿電可連續使用7小時,充電倉還能為耳機補充電量,滿足一天的商務使用需求。
電子產品類
智能無線藍牙耳機
這款藍牙耳機采用先進的藍牙5.3技術,連接穩定且快速。擁有高清音質,能夠呈現豐富的音樂細節。人體工學設計,佩戴舒適,長時間使用也不會有不適感。續航能力出色,一次充滿電可連續使用8小時以上。
電子產品類
便攜式移動硬盤
大容量便攜式移動硬盤,擁有2TB的存儲空間,可輕松存儲大量的照片、視頻、文件等。外觀小巧精致,便于攜帶。采用USB3.2高速接口,數據傳輸速度快,能讓你快速備份和讀取數據。
電子產品類
高清智能攝像頭
具備4K超高清分辨率的智能攝像頭,畫面清晰細膩。支持日夜切換功能,即使在夜間也能清晰捕捉畫面。內置智能感應系統,當檢測到異常活動時會及時推送警報信息到你的手機。
家居用品類
多功能養生壺
這款養生壺集煮茶、煲湯、燉燕窩、煮蛋等多種功能于一體。采用優質的玻璃材質,耐高溫且安全無毒。具備精準的溫控系統,能根據不同的食材和需求調節合適的溫度和時間。
家居用品類
智能掃地機器人
智能掃地機器人擁有先進的激光導航技術,能夠快速準確地繪制家居地圖,規劃清掃路線。具備多種清掃模式,如自動清掃、定點清掃、沿邊清掃等。還能通過手機APP遠程控制,讓你隨時隨地輕松清潔家居。
家居用品類
記憶棉床墊
記憶棉床墊采用高品質的記憶棉材質,能夠根據人體的曲線和壓力自動調整形狀,提供精準的支撐,有效緩解身體壓力。透氣性好,能保持睡眠環境的干爽舒適。同時,它還具有靜音效果,讓你享受安靜的睡眠。
服裝配飾類
純棉休閑T恤
采用100%純棉面料,柔軟舒適,透氣性極佳。簡約的設計風格,經典的圓領款式,適合各種場合穿著。多種顏色可選,滿足你的不同搭配需求。
服裝配飾類
真皮男士錢包
這款男士錢包采用優質的頭層牛皮制作,質感柔軟且耐用。內部設計合理,有多個卡槽、鈔位和零錢袋,方便分類存放物品。精致的縫線工藝和簡約的外觀設計,彰顯男士的沉穩與大氣。
服裝配飾類
時尚女士手鏈
時尚女士手鏈由高品質的水晶和合金制成,外觀閃耀奪目。獨特的設計款式,融合了時尚與優雅的元素,能為你的手腕增添一份迷人的魅力。是送給女性朋友的絕佳禮物。
服裝配飾類
防風保暖圍巾
圍巾采用優質的羊毛材質,保暖性能極佳。表面經過特殊處理,具有防風功能,能有效抵御寒冷的天氣。寬大的尺寸,可隨意搭配不同的服裝風格,讓你在寒冷的季節也能保持時尚。
美妝護膚類
美白保濕面膜
這款面膜富含多種美白和保濕成分,如熊果苷、透明質酸等。能夠深入肌膚底層,抑制黑色素的生成,同時為肌膚補充大量水分,讓你的肌膚變得白皙、水潤、有光澤。面膜紙采用輕薄透氣的材質,貼合肌膚,使用起來非常舒適。
美妝護膚類
控油祛痘洗面奶
專為油性痘痘肌設計的洗面奶,具有強大的控油和祛痘功效。含有水楊酸、茶樹精油等成分,能夠深層清潔毛孔,去除多余的油脂和污垢,預防痘痘的產生。洗后肌膚清爽不緊繃,保持水油平衡。
美妝護膚類
持久定妝粉餅
定妝粉餅具有細膩的粉質,能夠輕松貼合肌膚,打造出光滑、啞光的妝效。持久的定妝效果,能讓妝容一整天都保持完美狀態,不易脫妝、花妝。添加了護膚成分,在定妝的同時還能滋養肌膚。
母嬰用品類
嬰兒純棉連體衣
嬰兒連體衣采用天然純棉面料,柔軟親膚,對寶寶的皮膚無刺激。寬松的版型設計,讓寶寶活動自如。精致的包邊工藝,防止刮傷寶寶嬌嫩的肌膚。多種可愛的圖案和顏色可供選擇。
母嬰用品類
兒童安全座椅
兒童安全座椅符合嚴格的安全標準,采用高強度的材料制作,能夠有效保護兒童在乘車過程中的安全。人體工學設計,讓寶寶乘坐舒適。可調節的座椅角度和頭枕高度,適合不同年齡段的兒童使用。
母嬰用品類
嬰兒潤膚霜
專為嬰兒嬌嫩肌膚設計的潤膚霜,含有天然的植物精華,如橄欖油、蘆薈等。能夠滋潤寶寶的肌膚,防止肌膚干燥、皸裂。溫和無刺激,經過嚴格的安全性檢測,讓媽媽們放心使用。
食品飲料類
純牛奶
這款純牛奶源自優質牧場,采用新鮮的生牛乳制作而成。富含豐富的蛋白質、鈣等營養成分,口感醇厚,奶香濃郁。經過嚴格的質量檢測,安全有保障,是全家補充營養的理想選擇。
食品飲料類
堅果禮盒
堅果禮盒內包含多種美味的堅果,如核桃、杏仁、腰果、巴旦木等。這些堅果均經過精心挑選,顆粒飽滿,口感香脆。富含不飽和脂肪酸、維生素和礦物質等營養成分,健康又美味。
食品飲料類
水果茶包
水果茶包由多種新鮮水果和花草混合而成,如草莓、檸檬、玫瑰、薄荷等。口感清新酸甜,具有豐富的果香和花香。富含維生素C等營養成分,有美容養顏、提神醒腦的功效。可直接用開水沖泡,方便快捷。
食品飲料類
手工巧克力
手工制作的巧克力,選用高品質的可可豆,經過精細的加工工藝制作而成。口感絲滑醇厚,有多種口味可供選擇,如牛奶巧克力、黑巧克力、榛果巧克力等。精美的包裝,是送給親朋好友的甜蜜禮物。

代碼:

goods = []with open("../datas/goods.txt", "r", encoding="utf-8") as f:while True:category = f.readline().strip()if category == "":breakname = f.readline().strip()description = f.readline().strip()goods.append({"category": category, "name": name, "description": description})vectors = embedding_llm2.embed_documents([item["description"] for item in goods])# 修改插入數據格式,使其符合schema定義data_to_insert = []for i in range(len(goods)):data_to_insert.append({"category": goods[i]["category"],"name": goods[i]["name"],"description": goods[i]["description"],"vector": vectors[i]})# 插入數據res = client.insert(collection_name=COLLECTION_NAME, data=data_to_insert)print(res)

5.創建索引

# 創建索引參數對象index_params = client.prepare_index_params()# 添加一個索引,指定字段名稱、索引類型、度量類型和參數index_params.add_index(field_name="vector",index_type="HNSW",metric_type="IP",params={"M": 16, "efConstruction": 64})# 為 sparse_vector 字段添加 SPARSE_INVERTED_INDEX 索引index_params.add_index(field_name="sparse_vector",index_type="SPARSE_INVERTED_INDEX",metric_type="BM25",params={"inverted_index_algo": "DAAT_MAXSCORE","bm25_k1": 1.2,"bm25_b": 0.75})# 創建索引client.create_index(COLLECTION_NAME, index_params)

index_type 和 metric_type

????????在 Milvus 中,index_type 和 metric_type 是創建索引時非常關鍵的兩個參數,它們分別用于指定索引類型和距離度量方式。以下是詳細的選項說明:

index_type 索引類型(常用)

📌 推薦組合:對于稠密向量,推薦使用 HNSW + IP;對于稀疏向量,推薦 SPARSE_INVERTED_INDEX。?

metric_type 距離度量類型

注意:某些索引類型只支持特定的 metric_type,例如 HNSW 支持 IP、L2,而 SPARSE_INVERTED_INDEX 只支持 BM25(需配合稀疏向量使用)。

推薦配置建議(基于場景)

M 和 efConstruction ????????

????????在 Milvus 中使用 HNSW(Hierarchical Navigable Small World)索引時,參數 M 和 efConstruction 是兩個關鍵的構建參數,它們直接影響索引的質量

????????M: 圖結構中每個節點連接的鄰居數。默認值:16 建議值:5 ~ 48, M 值越大,圖結構越密集,檢索精度越高,相應的占用內存也越大 構建時間越長

????????M=16:適用于大多數場景,構建速度快、內存占用低。
????????M=32~48:適合對精度要求高、資源充足的場景。
????????efConstruction: 構建索引時搜索候選節點的數量。默認值:64 建議值10 ~ 512,efConstruction越大,索引圖質量越高,查詢效果越好。相應的構建時間越長,efConstruction對內存影響較小

????????efConstruction=64:快速構建,適合測試或小數據集。
????????efConstruction=128~256:高質量索引,適合生產環境。

稠密向量和稀疏向量

稠密向量

????????稠密向量是一個幾乎每個維度都有非零值的固定長度向量,通常用于表示語義信息。

????????數據類型(Milvus 中)FLOAT_VECTOR用于存儲稠密向量。必須指定維度(dim),例如 dim=1536。

特征:

適用模型與場景:

索引推薦:HNSW、IVF_FLAT、IVF_PQ、RHNSW_FLAT

稀疏向量

????????稀疏向量是一種大多數維度為零,只有少數位置有非零值的向量,通常用于關鍵詞或特征計數。

????????數據類型(Milvus 中)SPARSE_FLOAT_VECTOR用于存儲稀疏向量,使用字典格式 {dimension_index: value} 表示

適用模型與場景

如何選擇

6.搜索類型

Milvus 支持各種類型的搜索功能,以滿足不同用例的需求:

  • ANN 搜索:查找最接近查詢向量的前 K 個向量。

  • 過濾搜索:在指定的過濾條件下執行 ANN 搜索。

  • 范圍搜索:查找查詢向量指定半徑范圍內的向量。

  • 混合搜索:基于多個向量場進行 ANN 搜索。

  • 全文搜索:基于 BM25 的全文搜索。

  • Rerankers:根據附加標準或輔助算法調整搜索結果順序,完善初始 ANN 搜索結果。

  • 獲取:根據主鍵檢索數據。

  • 查詢使用特定表達式檢索數據。

向量搜索案例:

    #將集合加載到內存中,以便進行查詢操作。client.load_collection(COLLECTION_NAME)search = client.search(collection_name=COLLECTION_NAME,data=[embedding_llm2.embed_query("藍牙耳機")],  #embedding進行向量化anns_field="vector",  # 指定要檢索的向量字段filter="category == '電子產品類'", #過濾條件output_fields=["name", "category", "description"], #輸出字段limit=3 #返回top3)

bm25全文檢索:

    #將集合加載到內存中,以便進行查詢操作。client.load_collection(COLLECTION_NAME)keyword_query = "藍牙耳機"#'drop_ratio_search': 這是 Milvus 中的一個參數,用于設置在全文檢索(基于稀疏向量)過程中可以忽略的低權重特征比例。這里設置為 0.8 表示在搜索過程中會忽略掉 80% 的低權重特征,以提升搜索效率。search_params = {'params': {'drop_ratio_search': 0.8},}search = client.search(collection_name=COLLECTION_NAME,data=[keyword_query], # 搜索文本數據anns_field='sparse_vector', # 確保指定查詢的稀疏向量字段output_fields=['description'],  # 輸出字段limit=3,search_params=search_params)print(search)

什么是混合檢索?

? ? ? ? 混合檢索(Hybrid Search)是一種結合全文檢索(如 BM25)和向量相似度檢索(如 ANN,近似最近鄰搜索)的技術,通過融合兩者的結果提升檢索的準確性和覆蓋率。
????????BM25(全文匹配):適用于關鍵詞匹配,捕捉顯式語義。
????????ANN(向量匹配):適用于語義理解,捕捉隱式相關性。
????????混合檢索在實際應用中可以顯著提高召回率和排序質量,尤其適合處理復雜查詢或模糊語義場景。
混合檢索的核心流程
數據建模:
????????存儲原始文本字段(用于 BM25)
????????存儲該文本的 embedding 向量(用于 ANN)
索引構建:
????????對文本字段建立稀疏索引(SPARSE_INVERTED_INDEX + BM25)
????????對向量字段建立稠密索引(如 HNSW, IVF_FLAT)
檢索階段:
????????分別執行 BM25 和 ANN 查詢
????????使用加權評分或排序融合算法(如 Reciprocal Rank Fusion, RRF)合并結果

混合搜索案例

    #向量搜索vector_search_params = {"data": [embedding_llm2.embed_query("藍牙耳機")],"anns_field": "vector",#nprobe: 表示在執行 HNSW 索引搜索時,從索引中探測(訪問)的最近鄰子空間(neighborhood cells)的數量"param": {"nprobe": 10},"limit": 3}vector_search_result = AnnSearchRequest(**vector_search_params)# 全文搜索full_text_params = {"data": ["藍牙耳機"],"anns_field": "sparse_vector",#drop_ratio_search: 表示在執行基于 SPARSE_FLOAT_VECTOR 字段的全文搜索時,忽略掉低權重的稀疏特征項的比例。設置為0.2#意味著在搜索過程中會忽略掉權重最低的20 % 的特征項,從而加快查詢速度,但可能會略微降低結果的相關性。"param": {"drop_ratio_search": 0.2},"limit": 3}full_text_result = AnnSearchRequest(**full_text_params)# 初始化 配置 Rerankers 策略ranker = RRFRanker(100)reqs = [vector_search_result, full_text_result]#混合搜索res = client.hybrid_search(collection_name=COLLECTION_NAME,reqs=reqs,ranker=ranker,limit=3,output_fields=["name", "category", "description"]  # 同樣指定輸出字段)print("向量搜索請求對象:", vector_search_result)print("全文搜索請求對象:", full_text_result)print("混合搜索結果", res)

????????AnnSearchRequest 是 pymilvus 提供的一個類,用于構建近似最近鄰搜索(Approximate Nearest Neighbor Search)的請求對象。它主要用于 Milvus 的混合搜索(hybrid search)場景中,將多個搜索請求組合在一起。

配置 Rerankers 策略

要對 ANN 搜索結果集進行合并和重新排序,選擇適當的重新排序策略至關重要。Milvus 提供兩種重排策略:

  • 加權排名:如果結果需要強調某個向量場,請使用該策略。WeightedRanker 可以為某些向量場賦予更大的權重,使其更加突出。

  • RRFRanker(互易排名融合排名器):在不需要特別強調的情況下選擇此策略。RRFRanker 能有效平衡每個向量場的重要性。

7.刪除文檔

res = client.delete(collection_name=COLLECTION_NAME, ids=[0, 2])res = client.delete(collection_name=COLLECTION_NAME,filter="category == '電子產品類'",
)

8.刪除集合

client.drop_collection(collection_name=COLLECTION_NAME)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/87891.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/87891.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/87891.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

uniapp的光標跟隨和打字機效果

1、準備好容器文字的顯示textRef&#xff0c;以及光標的顯示 &#xff0c;使用transform-translate對光標進行移動到文字后面<template><view class"container" ref"contentRef"><u-parse :content"nodeText" ref"textRef&q…

「ECG信號處理——(21)基于Pan-Tompkins和隨機森林(RF)的睡眠呼吸暫停檢測算法」2025年7月4日

目錄 1、引言 2、數據庫介紹&#xff08;Apnea-ECG Database) 3、基于Pan-Tompkins和隨機森林&#xff08;RF&#xff09;的睡眠呼吸暫停檢測算法 3.1 算法概述 3.2 心電信號預處理及QRS波檢測算法 3.3 心電信號的隨機森林睡眠呼吸暫停識別 4、實驗結果 4.1 心電信號預處理及QR…

C++學習之STL學習:list的模擬實現

在上一篇學習了list的使用后&#xff0c;在本篇我們將通過模擬實現的方式深入了解list的底層運作原理。 作者的個人gitee&#xff1a;樓田莉子 (riko-lou-tian) - Gitee.com 感興趣的讀者可以看一看 目錄 前置準備 結點的定義 鏈表類的定義 迭代器 普通迭代器 const迭代器 …

不引入變量 異或交換的缺點

文章目錄選擇排序正確代碼交換兩個數位置的方法引入中間變量不引入中間變量&#xff0c;使用異或的方法錯誤原因優化代碼選擇排序正確代碼 // 數組中交換i和j位置的數public static void swap(int[] arr, int i, int j) {int tmp arr[i];arr[i] arr[j];arr[j] tmp;}// 選擇排…

VS Code中使用Git的方法:環境配置與Git操作

本文介紹在Windows電腦的VS Code中&#xff0c;配置Git環境并使用Git命令、功能的方法。 1 環境部署 首先&#xff0c;我們需要分別安裝Git環境與VS Code軟件。這里需要注意&#xff0c;即使是在VS Code中使用Git&#xff0c;也需要我們首先在電腦上單獨配置好Git的環境&#…

在 Windows 上安裝和運行 Apache Kafka

Apache Kafka是一款開源應用程序&#xff0c;用于實時處理海量數據流。Apache Kafka 是一個發布-訂閱消息系統。消息系統允許您在進程、應用程序和服務器之間發送消息。廣義上講&#xff0c;Apache Kafka 是一款可以定義主題并進行進一步處理的軟件。 下載和安裝 Apache Kafk…

【嵌入式電機控制#8】編碼器測速實戰

一、編碼器測速重要參數有刷電機編碼器參數&#xff08;其他的后面會慢慢提及&#xff0c;也可以在某寶看&#xff09;1. 編碼器分辨率&#xff08;PPR&#xff09;2. 編碼器工作電壓 3. 電機減速比 例如 30&#xff1a;1 指的就是電機減速軸轉1圈&#xff0c;編碼器轉30圈。注…

在C#中,可以不實例化一個類而直接調用其靜態字段

這是因為靜態成員&#xff08;static members&#xff09;屬于類本身&#xff0c;而不是類的實例。這是靜態成員的核心特性1. 靜態成員屬于類&#xff0c;而非實例當用static關鍵字修飾字段、方法或屬性時&#xff0c;這些成員會綁定到類級別&#xff0c;而不是實例級別。它們在…

Win11 安裝 Visual Studio(保姆教程 - 更新至2025.07)

Visual Studio 安裝&#xff08;保姆教程 - 更新至2025.07&#xff09; 前言安裝須知安裝過程1. 下載安裝包2. 安裝3. 注冊4. 創建桌面快捷方式 前言 本教程針對 非計算機相關專業的小白用戶 &#xff0c;手把手教你如何基于 win11 操作系統 安裝 Visual Studio 2022。安裝搭載…

工商銀行杭州軟開校招面經分享

近年來,央國企成為了很多求職者的首選,無論是校招還是社招。不過,在選擇央國企的時候,還是盡量要選擇壟斷性或者盈利多的。 昨天看到一份 2024 年中國企業 500 強榜單中提到的最賺錢的十家央國企的名單,給大家分享一下。 排名企業名稱成立時間主要業務描述2024年營收(萬…

李宏毅genai筆記:推理

0 思考越多效果越好 可以把算力投入在training的時候&#xff0c;也可以投入在testing上面 連起來的線表示表現是差不多的&#xff0c;越高分&#xff08;越右上方&#xff09;越好 同樣-1000分&#xff0c;可以訓練時候用力較少&#xff0c;test的時候多用點算力 但是training…

使用SSH隧道連接遠程主機

概述 SSH(Secure Shell 的縮寫)是一種網絡協議,通過使用身份驗證機制,是兩臺計算機進行加密通信。 SSH 主要用途是登錄服務器,還可以作為加密通信的中介,充當兩臺服務器之間的通信加密跳板,這個功能稱為端口轉發(port forwarding),又稱 SSH 隧道(tunnel)。 端口…

數據結構---鏈表理解(二)

文章目錄 二、鏈表2.1 鏈表初始化2.2 單鏈表2.2.1 單鏈表---頭插法2.2.2 單鏈表---單鏈表遍歷2.2.3 單鏈表---尾插法2.2.4 單鏈表---在指定位置插入數據2.2.5 單鏈表---刪除指定位置節點2.2.6 單鏈表---獲取鏈表長度2.2.7 單鏈表---釋放鏈表 二、鏈表 暫時到這一步你就理解為&a…

Playnite使用指北 —— 一個優秀的本地化游戲管理工具

為何我們使用 Playnite&#xff1f; 首先我們需要知道 Playnite 是什么&#xff0c;如果你有過用 emby 等管理過電影影視的經驗&#xff0c;你可能會對這種工具感到熟悉&#xff1a; Playnite 是一個開源的本地化的游戲管理軟件&#xff0c;可以實現多平臺的管理&#xff08;S…

時間與空間復雜度詳解:算法效率的度量衡

一、為什么需要復雜度分析&#xff1f; 想象你正在開發一個手機通訊錄應用&#xff0c;需要實現聯系人搜索功能。你有兩種算法可以選擇&#xff1a; // 算法A&#xff1a;線性搜索 public Contact linearSearch(List<Contact> contacts, String name) {for (Contact c …

408第三季part2 - 計算機網絡 - 交換機

理解 題目 如果你這么做 那你完了&#xff0c;因為這種叫存儲轉發 直通只轉目的地址 b 再次理解 A發數據到交換機里想給B 然后交換表會記錄A的MAC地址和端口 然后因為交換表找不到B&#xff0c;所以A會把BCD全部肘一遍&#xff08;廣播&#xff09;&#xff0c;最終只有B會…

從零開始開發純血鴻蒙應用之探析倉頡語言與ArkTS的差異

探析倉頡語言與ArkTS的差異 〇、前言一、IDE 的支持程度不同二、內置組件的使用方式不同三、頁面路由實現方式的不同四、總結 〇、前言 截止到本文發布的日期為止&#xff0c;鴻蒙官方所推薦的開發原生鴻蒙應用的語言&#xff0c;有兩種&#xff0c;分別是擴展自 Typescript 的…

Cursor/VScode ,點擊運行按鈕,就打開新的終端,如何設置為在當前終端運行文件而不是重新打開終端----一招搞定篇

我發現就是&#xff0c;我運行.py&#xff0c;點擊完運行按鈕&#xff0c;就給我重新打開一個終端&#xff0c;然后新的終端是在base環境中的&#xff0c;就跟麻煩 還得在當前終端輸入python3 test.py 來運行文件。能不能修改。1、打開cursor或者vscode 。 同時按下 ctrlshiftp…

【STM32實踐篇】:I2C驅動編寫

文章目錄I2C 物理層I2C 協議層1. 數據有效性2. 起始和停止信號3. 應答響應4. 總線的尋址方式5. 數據傳輸5.1 主機向從機發送數據5.2 主機由從機中讀數據5.3 I2C通信復合格式I2C 驅動編寫1. 配置 SCL 和 SDA2. I2C起始信號和停止信號3. 等待從設備應答4. 主機發送ACK和NACK信號5…

ragflow本地部署教程linux Ubuntu系統

以下是一份在 Ubuntu 系統上本地部署 RAGFlow 的詳細教程。 一、基礎環境準備 1.硬件要求 –CPU ≥ 4核 –RAM ≥ 16 GB –磁盤空間 ≥ 50 GB&#xff08;建議 SSD&#xff09; 2.系統配置 更新系統 sudo apt update && sudo apt upgrade -y 設置內核參數&#xff…