संदर्भ यूप्सर्ट
यूप्सर्ट अपडेट, डालने और हटाने के संयोजन का एक संयोजित प्रकार है। Milvus वेक्टर डेटाबेस के संदर्भ में, अपडेट क्रिया डेटा स्तरीय क्रिया है। यह निर्दिष्ट क्षेत्र में मौजूदा एंटिटी को अधिलिखित करता है अगर, संग्रह में निर्दिष्ट मान मौजूद नहीं है तो नई एंटिटी को डालता है।
निम्नलिखित उदाहरण 3,000 पंक्तियों के बिना के शरीरिक उत्पन्न डेटा को जैसे संदर्भ डालता है। अपडेट क्रिया करते समय, इस बात का ध्यान देना महत्वपूर्ण है कि यह क्रिया प्रदर्शन पर असर डाल सकती है क्योंकि इसमें डेटा को हटाना शामल होता है।
डेटा तैयारी
पहले, अपडेट करने के लिए डेटा को तैयार करें। अपडेट करने के लिए डेटा का प्रकार संग्रह की स्कीमा से मेल खाना चाहिए, अन्यथा Milvus एक अपवाद उठाएगा।
Milvus शारीरिक क्षेत्रों के लिए डिफ़ॉल्ट मूल्य समर्थन करता है, प्राथमिक कुंजी क्षेत्रों के लिए छोड़ा जा सकता है। यह यह मतलब होता है कि डेटा डालने या अपडेट करते समय कुछ क्षेत्र खाली छोड़े जा सकते हैं। अधिक जानकारी के लिए, कृपया संग्रह बनाने का संदर्भ देखें।
import random
nb = 3000
dim = 8
vectors = [[random.random() for _ in range(dim)] for _ in range(nb)]
data = [
[i for i in range(nb)],
[str(i) for i in range(nb)],
[i for i in range(10000, 10000+nb)],
vectors,
[str("dy"*i) for i in range(nb)]
]
डेटा अपडेट
संदर्भ में डेटा को अपडेट करें।
from pymilvus import Collection
collection = Collection("book") # मौजूदा संदर्भ प्राप्त करें।
mr = collection.upsert(data)
बूलियन व्यक्ति तैयार करें
साफ करने के लिए बूलियन व्यक्ति तैयार करें।
Milvus केवल प्राथमिक कुंजियों के साथ निर्दिष्ट रूप से होने वाले ऊर्जावलंबीतों को हटाने का समर्थन करता है, जिसे "in" ऑपरेटर का उपयोग करके प्राप्त किया जा सकता है। अन्य ऑपरेटरों का केवल स्कैलर फिल्टरिंग के लिए पूछताछ या वेक्टर खोज के लिए उपयोग किया जा सकता है।
निम्नलिखित उदाहरण में प्राथमिक कुंजी मानों का उपयोग करके डेटा को फ़िल्टर करता है।
expr = "book_id in [0,1]"
SQL WHERE clause के उक्तियों के समान
ऊर्जावलंबीता हटाएं
आपके द्वारा बनाए बूलियन व्यक्ति का उपयोग करें ताकि ऊर्जावलंबीता हटाई जा सके। Milvus उस ऊर्जावलंबीता की पहचान की सूची लौटाएगा जो हटाए गए थे।
from pymilvus import Collection
collection = Collection("book") # मौजूदा संग्रह प्राप्त करें।
collection.delete(expr)
डेटा संक्षेपित करें
Milvus डिफ़ॉल्ट रूप से स्वचालित डेटा संक्षेपण का समर्थन करता है। आप Milvus को संक्षेपण और स्वचालित संक्षेपण को सक्षम या अक्षम करने के लिए कॉन्फ़िगर कर सकते हैं।
यदि स्वचालित संक्षेपण अक्षम है, तो फिर भी आप निर्देशित रूप से डेटा को संक्षेपित कर सकते हैं।
स्वचालित रूप से डेटा संक्षेपित करें
क्योंकि संक्षेपण आमतौर पर बहुत समय लेता है, इसलिए संक्षेपण अनुरोध असिंक्रोनस रूप से प्रसंस्कृत किए जाते हैं।
from pymilvus import Collection
collection = Collection("book") # मौजूदा संग्रह प्राप्त करें।
collection.compact()
संक्षेपण स्थिति जांचें
आप संक्षेपण की स्थिति जांचने के लिए मैन्युअल संक्षेपण को ट्रिगर करते समय वापस लौटने वाली संक्षेपण ID का उपयोग कर सकते हैं।
collection.get_compaction_state()