ویکٹر انڈیکس بنانا
اس ہدایت نامے میں بیان کیا گیا ہے کہ ملوس میں ویکٹر انڈیکس کیسے بنایا جاتا ہے۔
ایک ویکٹر انڈیکس وہ میٹا ڈیٹا کی ترتیب کی اکائی ہے جو ویکٹر مماثلت تلاش کو تیز کرنے کے لئے استعمال ہوتی ہے۔
ملوس پراپٹ انڈیکس نہیں بناتا ہے جب تک کے ویکٹر پر 1024 سطروں سے کم سیگمنٹس کا انڈیکس نہیں بنایا جاتا۔
نیچے دی گئی مثال میں 1024 کلسٹرز کے ساتھ IVF_FLAT انڈیکس کا بنانا دکھایا گیا ہے جو یوروسلیڈیئن فاصلہ (L2) کا استعمال کرتا ہے۔ آپ اپنے منصوبہ کے مطابق انڈیکس اور میٹرک کی قسم منتخب کرسکتے ہیں۔
انڈیکس پیرامیٹر تیار کرنا
انڈیکس پیرامیٹرز تیار کرنے کے لئے مندرجہ ذیل اقدامات کریں:
index_params = {
"metric_type":"L2",
"index_type":"IVF_FLAT",
"params":{"nlist":1024}
}
پیرامیٹر | تفصیل | آپشنز |
---|---|---|
metric_type |
ویکٹر مماثلت ناپنے کے لئے استعمال ہونے والی میٹرک کی قسم۔ | فلوٹنگ پوائنٹ ویکٹرز کے لئے: - L2 (یوروکلیڈیئن فاصلہ)- IP (انر پراڈکٹ)- COSINE (کوسائن مماثلت) بائنری ویکٹرز کے لئے: - JACCARD (جاکارڈ فاصلہ)- HAMMING (ہیمنگ فاصلہ) |
index_type |
ویکٹر تلاش کو تیز کرنے کے لئے استعمال ہونے والے انڈیکس کی قسم۔ | فلوٹنگ پوائنٹ ویکٹرز کے لئے: - FLAT (FLAT)- IVF_FLAT (IVF_FLAT)- IVF_SQ8 (IVF_SQ8)- IVF_PQ (IVF_PQ)- GPU_IVF_FLAT* (GPU_IVF_FLAT)- GPU_IVF_PQ*> (GPU_IVF_PQ)- HNSW (HNSW)- DISKANN* (DISKANN) بائنری ویکٹرز کے لئے: - BIN_FLAT (BIN_FLAT)- BIN_IVF_FLAT (BIN_IVF_FLAT) |
params |
انڈیکس کے مخصوص تعمیری پیرامیٹرز۔ | مزید معلومات کے لئے، ان-میموری اور آن-ڈسک انڈیکسنگ دیکھیں۔ |
- DISKANN کے مخصوص شرائط ہوتے ہیں۔ مزید معلومات کے لئے، آن-ڈسک انڈیکسنگ دیکھیں۔
- GPU_IVF_FLAT اور GPU_IVF_PQ صرف ان ملوس انسٹالیشن میں دستیاب ہیں جس میں جی پی یو کی حمایت فعال ہو۔
انڈیکس بنانا
انڈیکس بنانے کے لئے ویکٹر فیلڈ کا نام اور انڈیکس پیرامیٹرز کا سنواریں۔
from pymilvus import Collection, utility
collection = Collection("book")
collection.create_index(
field_name="book_intro",
index_params=index_params
)
utility.index_building_progress("book")
پیرامیٹر | تفصیل |
---|---|
field_name |
انڈیکس بنانے والے ویکٹر فیلڈ کا نام۔ |
index_params |
بنانے والے انڈیکس کے پیرامیٹرز۔ |
سکیلر انڈیکس بنانا
ویکٹر کے برخلاف، اسکیلر کا صرف مقدار ہوتا ہے اور اس کی کوئی سمت نہیں ہوتی۔ ملوس فرد اعداد اور متن کو اسکیلر کے طور پر تصور کرتا ہے۔ نیچے ملوس میں اسکیلر فیلڈز کے لئے دستیاب ڈیٹا ٹائپس کی فہرست ہے۔
ملوس v2.1.0 سے شروع کرکے ہا؇برڈ تلاشوں میں صفاتی فلٹرنگ کو تیز کرنے کے لئے، آپ سکیلر فیلڈز پر انڈیکس بنا سکتے ہیں۔ آپ یہاں یہاں سکیلر فیلڈ انڈیکسنگ کے بارے میں مزید پڑھ سکتے ہیں۔
نوٹ: "یہاں" کے لنک کو وقتی مسلسل کے ساتھ متبادل کرنا چاہئے جو بنیادی دستاویز میں مخصوص کیا گیا ہے.
انڈیکس بنانا
جب اسکیلر فیلڈ پر انڈیکس بناتے ہیں، آپ کو کوئی انڈیکس پیرامیٹرز سیٹ کرنے کی ضرورت نہیں ہوتی۔ اسکیلر فیلڈ کے انڈیکس کا پہلا نام default_idx
ہوتا ہے، اور اس کے بعد فیلڈ کا نام ہوتا ہے۔ آپ اسے دوسرے مناسب قیمتوں پر سیٹ کرسکتے ہیں۔
مندرجہ ذیل کوڈ سنیپٹ فرض کرتا ہے کہ ایک کالیکشن جس کا نام book
ہے پہلے ہی موجود ہے اور ایک انڈیکس کو سٹرنگ فیلڈ book_name
پر بنایا جانا چاہئے۔
from pymilvus import Collection
collection = Collection("book")
collection.create_index(
field_name="book_name",
index_name="scalar_index",
)
collection.load()
انڈیکس ایک بار بنانے کے بعد، آپ اس سٹرنگ فیلڈ کے لئے ویکٹر مماثلت تلاش میں ایک بولین ترتیب دے سکتے ہیں، جیسا کہ ذیل میں دکھایا گیا ہے:
search_param = {
"data": [[0.1, 0.2]],
"anns_field": "book_intro",
"param": {"metric_type": "L2", "params": {"nprobe": 10}},
"limit": 2,
"expr": "book_name like \"Hello%\"",
}
res = collection.search(**search_param)
انڈیکس کو حذف کرنا
from pymilvus import Collection
collection = Collection("book") # موجودہ کالیکشن حاصل کریں۔
collection.drop_index()