ڈیٹا لوڈ
Qdrant کی اہم خصوصیات میں سے ایک یہ ہے کہ یہ ویکٹرز کے باہر اضافی معلومات (اسٹوریج انتظام کاروباری خصوصیات) کو ذخیرہ کرنے کی صلاحیت رکھتا ہے۔ Qdrant کی لغت میں، یہ اضافی معلومات "payload" کے طور پر مشہور ہے۔
Qdrant آپ کو کسی بھی معلومات کو ذخیرہ کرنے کی اجازت دیتا ہے جو JSON کے ذریعے ظاہر کیا جا سکتا ہے۔
یہاں ایک عام payload کا مثال ہے:
{
"name": "jacket",
"color": ["red", "blue"],
"quantity": 10,
"price": 11.99,
"location": [
{
"longitude": 52.5200,
"latitude": 13.4050
}
],
"reviews": [
{
"user": "Alice",
"score": 4
},
{
"user": "Bob",
"score": 5
}
]
}
پیلوڈ کی اقسام
پیلوڈ کو ذخیرہ کرنے کے علاوہ، Qdrant ایسے اقسام کی قیمتوں پر بنیاد کرکے تلاش کرنے کی اجازت بھی دیتا ہے۔ یہ خصوصیت تلاش کی پروسیس کے دوران اضافی فلٹرز کے طور پر عمل کرتی ہے اور دسمتی مشابہت کی بنیاد پر اپنی مرضی کے مطابقت کا کسانی پیش کرتی ہے۔
فلٹرنگ کے دوران، Qdrant قیمت کی شرائط کی تصدیق کرے گا جو فلٹر کی شرائط پر پورا ہوتی ہے۔ اگر ذخیرہ شدہ قیمت کی قسم فلٹر کی شرائط پر پورا نہ ہو، تو یہ ناکام ہے۔
مثال کے طور پر، ٹرینگ کی شرائط کو استعمال کرنے سے سٹرنگ ڈیٹا کا خالی نتیجہ حاصل ہوگا۔
اوسط سے ٹرینگ کا سالیکشن سمتی میں (ایک ہی قسم کی متعدد قیمتیں) کا عمل مختلف ہوتا ہے۔ وقت جب ہم ایک ارے کے لیے فلٹر لگاتے ہیں، اگر کم از کم ایک قیمت ارے میں شرائط پوری کرتی ہو، تو فلٹر کامیاب ہوگا۔
فلٹرنگ پروسیس کے تفصیلی مناقشہ کا تجزیہ فلٹرنگ سیکشن میں کیا جاتا ہے۔
چلو دیکھیں کہ Qdrant کی طرف سے سپورٹ کردہ ڈیٹا ٹائپس کا جائزہ لیں:
عدد صحیح
integer
- 64-بٹ عدد صحیح، -9223372036854775808
تا 9223372036854775807
تک کا رینج ہوتا ہے۔
تکنیکی اور متعدد integer
قیمتوں کے مثال:
{
"quantity": 10,
"sizes": [35, 36, 38]
}
چندول
float
- 64-بٹ فلوٹنگ پوائنٹ نمبر۔
تکنیکی اور متعدد float
قیمتوں کے مثال:
{
"price": 11.99,
"rating": [9.1, 9.2, 9.4]
}
بولیئن
bool
- دو حالتی قیمت۔ true
یا false
کے مساوی۔
تکنیکی اور متعدد bool
قیمتوں کے مثال:
{
"delivered": true,
"replies": [false, false, true, false]
}
کی ورڈ
keyword
- سٹرنگ قیمت۔
تکنیکی اور متعدد keyword
قیمتوں کے مثال:
{
"name": "Alice",
"friends": [
"Bob",
"Eva",
"Jack"
]
}
جغرافیائی ہم آہنگیاں
geo
کو جغرافیائی کوآرڈینیٹس کو ظاہر کرنے کے لیے استعمال کیا جاتا ہے۔
تکنیکی اور متعدد geo
قیمتوں کے مثال:
{
"location": {
"longitude": 52.5200,
"latitude": 13.4050
},
"cities": [
{
"longitude": 51.5072,
"latitude": 0.1276
},
{
"longitude": 40.7128,
"latitude": 74.0060
}
]
}
کوآرڈینیٹس ایک ابجیکٹ کے طور پر بیان کیے جانے چاہئیں: longitude
- طول مشیر، latitude
- عرض مداری۔
پوائنٹس کو پیلوڈ کے ساتھ بنانا
REST API (architecture)
PUT /collections/{collection_name}/points
{
"points": [
{
"id": 1,
"vector": [0.05, 0.61, 0.76, 0.74],
"payload": {"city": "Berlin", "price": 1.99}
},
{
"id": 2,
"vector": [0.19, 0.81, 0.75, 0.11],
"payload": {"city": ["Berlin", "London"], "price": 1.99}
},
{
"id": 3,
"vector": [0.36, 0.55, 0.47, 0.94],
"payload": {"city": ["Berlin", "Moscow"], "price": [1.99, 2.99]}
}
]
}
مواد لادنا
REST API (سکیما):
POST /collections/{collection_name}/points/payload
{
"payload": {
"property1": "string",
"property2": "string"
},
"points": [
0, 3, 100
]
}
مواد کو حذف کرنا
یہ ترکیب مخصوص نقاط سے مخصوص مواد کی مشخص کردہ کنجیوں کو ہٹا دیتی ہے۔
REST API (سکیما):
POST /collections/{collection_name}/points/payload/delete
{
"keys": ["رنگ", "قیمت"],
"points": [0, 3, 100]
}
مواد کو صاف کرنا
یہ ترکیب مخصوص نقاط سے تمام مواد کی کنجیوں کو ہٹا دیتی ہے۔
REST API (سکیما):
POST /collections/{collection_name}/points/payload/clear
{
"points": [0, 3, 100]
}
آپ وقت کے طور پر
models.FilterSelector
کا استعمال کر کے مخصوص فلٹر حالت کی مطابقت رکھنے والے نقاط کو ہٹانے کے لئے نقطوں کی بجائے استعمال کرسکتے ہیں۔
مواد کا انڈیکسنگ
فلٹر شدہ تلاشات کو فعال کرنے کے لئے، Qdrant آپ کو فیلڈ کا انڈیکس بنانے کی اجازت دیتا ہے، جس میں فیلڈ کا نام اور قسم مخصوص کی جاتی ہے۔
انڈیکس فیلڈز ویکٹر انڈیکس پر بھی اثر ڈالتی ہیں۔
عمل میں، مشورہ دیا جاتا ہے کہ انڈیکس کو وہ فیلڈز پر بنانا چاہئے جو نتائج کو سب سے زیادہ محدود کرنے کی صورت میں مددگار ہوں۔ مثال کے طور پر، ایک ایک ذراع ID پر انڈیکسنگ کرنا ریکارڈ کے لئے یکسر کردار ادا کرنے کے لئے موزون رہے گی، جبکہ رنگ پر انڈیکسنگ کرنا صرف چند ممکن قیمتوں کے لئے مددگار ہوگی۔
مختلف فیلڈز کو شامل کرنے والے مرکب کوئریوں میں، Qdrant پہلے سب سے محدود انڈیکس کا استعمال کرنے کی کوشش کرے گا۔
فیلڈ کے لئے انڈیکس بنانے کے لئے مندرجہ ذیل استعمال کیا جا سکتا ہے:
REST API (سکیما)
PUT /collections/{collection_name}/index
{
"field_name": "انڈیکس بنانے والے فیلڈ کا نام",
"field_schema": "کلمہ"
}
انڈیکس فیلڈز پیدا شدہ مشین کیما کے ساتھ کلکشن انفو API میں دکھایا جاتا ہے۔
مثال مواد کی مشین کیما:
{
"payload_schema": {
"property1": {
"data_type": "کلمہ"
},
"property2": {
"data_type": "صحیح عدد"
}
}
}