Elasticsearch ملٹی گیٹ

Elasticsearch Ml Y Gy



یہ مضمون اس بات پر بحث کرے گا کہ کس طرح Elasticsearch multi-get API کا استعمال ان کی IDs کی بنیاد پر متعدد JSON دستاویزات کو حاصل کرنے کے لیے کیا جائے۔ اس کے علاوہ، Elasticsearch آپ کو صرف دستاویز کی IDs کا استعمال کرتے ہوئے انڈیکس سے دستاویزات کو بازیافت کرنے کے لیے سنگل گیٹ استفسار استعمال کرنے کی اجازت دیتا ہے۔

آئیے دریافت کریں۔







نحو کی درخواست کریں۔

Elasticsearch multi-get API کا نحو درج ذیل ہے:



حاصل کریں /_mget
GET / /_mget

ملٹی گیٹ API متعدد انڈیکس کو سپورٹ کرتا ہے جو آپ کو دستاویزات لانے کی اجازت دیتا ہے چاہے وہ ایک ہی انڈیکس میں نہ ہوں۔



درخواست درج ذیل پاتھ پیرامیٹرز کی حمایت کرتی ہے:





  1. - انڈیکس کا نام جس سے دستاویزات کو بازیافت کرنا ہے جیسا کہ ان کی IDs کے ذریعہ بیان کیا گیا ہے۔

آپ دوسرے استفسار کے پیرامیٹرز کی بھی وضاحت کر سکتے ہیں جیسا کہ دکھایا گیا ہے:

  1. ترجیح - ترجیحی نوڈ یا شارڈ کی وضاحت کرتا ہے۔
  2. حقیقی وقت - اگر درست پر سیٹ کیا جاتا ہے، تو آپریشن ریئل ٹائم میں کیا جاتا ہے۔
  3. ریفریش کریں۔ - مخصوص دستاویزات لانے سے پہلے ٹارگٹ شارڈز کو ریفریش کرنے کے لیے آپریشن کو مجبور کرتا ہے۔
  4. روٹنگ - ایک قدر جو آپریشنز کو ایک مخصوص شارڈ تک پہنچانے کے لیے استعمال ہوتی ہے۔
  5. اسٹور_فیلڈز - دستاویز کے بجائے انڈیکس میں ذخیرہ شدہ دستاویز کے فیلڈز کو بازیافت کرتا ہے۔
  6. _ذریعہ - ایک بولین قدر جو اس بات کی وضاحت کرتی ہے کہ آیا درخواست کو _source فیلڈ واپس کرنا چاہئے یا نہیں۔

استفسار کے لیے جسم درکار ہے، جس میں درج ذیل اقدار شامل ہیں:



  1. دستاویزات - ان دستاویزات کی وضاحت کرتا ہے جو آپ لانا چاہتے ہیں۔ اس کے علاوہ، یہ سیکشن درج ذیل صفات کی حمایت کرتا ہے:
    • _id - ہدف دستاویز کی منفرد ID۔
    • _index - وہ اشاریہ جس میں ہدف کی دستاویز ہوتی ہے۔
    • روٹنگ - دستاویز کے بنیادی شارڈ کی کلید۔
    • _ذریعہ - اگر سچ ہے، تو اس میں تمام سورس فیلڈز شامل ہیں۔ دوسری صورت میں، یہ ان کو خارج کر دیتا ہے.
    • _stored_fields - ذخیرہ شدہ_فیلڈز جنہیں آپ شامل کرنا چاہتے ہیں۔
  2. آئی ڈیز - ان دستاویزات کی آئی ڈیز جنہیں آپ لانا چاہتے ہیں۔

مثال 1: ایک ہی انڈیکس سے متعدد دستاویزات حاصل کریں۔

مندرجہ ذیل مثال سے پتہ چلتا ہے کہ Netflix انڈیکس سے مخصوص IDs کے ساتھ دستاویزات کو بازیافت کرنے کے لیے Elasticsearch multi-get API کا استعمال کیسے کیا جائے:

curl -XGET 'http://localhost:9200/netflix/_mget' -H 'kbn-xsrf: رپورٹنگ' -H 'مواد کی قسم: درخواست/json' -d'
{
'دستاویزات': [
{
'_id': 'T3wnVoMBck2AEzXPytlJ'

{
'_id': 'W3wnVoMBck2AEzXPytlJ'
}
]
}'

دی گئی درخواست کو Netflix انڈیکس سے مخصوص IDs کے ساتھ دستاویزات لانے چاہئیں۔ نتیجے میں آؤٹ پٹ دکھایا گیا ہے:

{
'دستاویزات': [
{
'_index': 'netflix'،
'_id': 'T3wnVoMBck2AEzXPytlJ',
'_ورژن': 1،
'_seq_no': 0،
'_primary_term': 1،
'ملا': سچ،
'_ذریعہ': {
'دورانیہ': '90 منٹ'
'listed_in': 'دستاویزی فلمیں'،
'country': 'ریاستہائے متحدہ'
'date_added': '25 ستمبر 2021',
'show_id': 's1',
'ڈائریکٹر': 'کرسٹن جانسن'
'ریلیز_سال': 2020،
'درجہ بندی': 'PG-13'
'description': 'جیسا کہ اس کے والد اپنی زندگی کے اختتام کے قریب پہنچ رہے ہیں، فلم ساز کرسٹن جانسن نے ان دونوں کو ناگزیر حالات کا سامنا کرنے میں مدد کرنے کے لیے اختراعی اور مزاحیہ طریقوں سے اپنی موت کا آغاز کیا۔',
'type': 'فلم'،
'عنوان': 'ڈک جانسن مر گیا ہے'
}

{
'_index': 'netflix'،
'_id': 'W3wnVoMBck2AEzXPytlJ',
'_ورژن': 1،
'_seq_no': 12،
'_primary_term': 1،
'ملا': سچ،
'_ذریعہ': {
'ملک': 'جرمنی، جمہوریہ چیک'،
'show_id': 's13',
'ڈائریکٹر': 'کرسچن شووچو'
'ریلیز_سال': 2021،
'درجہ بندی': 'TV-MA'
'description': 'دہشت گردانہ بم دھماکے میں اس کے خاندان کے زیادہ تر افراد کے مارے جانے کے بعد، ایک نوجوان عورت کو انجانے میں اس گروہ میں شامل ہونے کا لالچ دیا گیا جس نے انہیں قتل کیا۔',
'type': 'فلم'،
'title': 'میں کارل ہوں'
'دورانیہ': '127 منٹ'
'listed_in': 'ڈرامے، بین الاقوامی فلمیں'،
'کاسٹ': 'لونا ویڈلر، جینس نیوہنر، میلان پیشل، ایڈن ہاسانوویچ، اینا فیالووا، مارلن بوس، وکٹر بوکارڈ، فلیور گیفریر، عزیز دیاب، میلانی فوچی، ایلیزاویٹا میکسمووا'
'date_added': '23 ستمبر 2021'
}
}
]

}

ہم دستاویز کی IDs کو ایک سادہ صف میں رکھ کر درخواست کو آسان بھی بنا سکتے ہیں جیسا کہ درج ذیل میں دکھایا گیا ہے۔

curl -XGET 'http://localhost:9200/netflix/_mget' -H 'kbn-xsrf: رپورٹنگ' -H 'مواد کی قسم: درخواست/json' -d'
{
'ids': ['T3wnVoMBck2AEzXPytlJ', 'W3wnVoMBck2AEzXPytlJ']
}'

پچھلی درخواست کو اسی طرح کی کارروائی کرنی چاہئے۔

مثال 2: متعدد اشارے سے دستاویزات حاصل کریں۔

درج ذیل مثال میں، درخواست مختلف اشاریوں سے متعدد دستاویزات حاصل کرتی ہے جیسا کہ دکھایا گیا ہے:

curl -XGET 'http://localhost:9200/_mget' -H 'kbn-xsrf: رپورٹنگ' -H 'مواد کی قسم: درخواست/json' -d'
{
'دستاویزات': [
{
'_index': 'netflix'،
'_id': 'T3wnVoMBck2AEzXPytlJ'

{
'_index': 'ڈزنی'،
'_id': '8j4wWoMB1yF5VqfaKCE4'
}
]
}'

نتیجے میں آؤٹ پٹ دکھایا گیا ہے:

مثال 3: مخصوص فیلڈز کو خارج کریں۔

ہم source_include اور source_exclude پیرامیٹرز کا استعمال کرتے ہوئے دی گئی درخواست سے مخصوص فیلڈز کو خارج کر سکتے ہیں۔

مثال کے طور پر دکھایا گیا ہے:

curl -XGET 'http://localhost:9200/_mget' -H 'kbn-xsrf: رپورٹنگ' -H 'مواد کی قسم: درخواست/json' -d'
{
'دستاویزات': [
{
'_index': 'netflix'،
'_id': 'T3wnVoMBck2AEzXPytlJ',
'_ذریعہ': غلط

{
'_index': 'netflix'،
'_id': 'T3wnVoMBck2AEzXPytlJ',
'_ذریعہ': {
'شامل': [ 'لسٹڈ_ان'، 'ریلیز_سال'، 'عنوان']،
'exclude': [ 'تفصیل'، 'قسم'، 'تاریخ_شامل' ]
}
}
]

}'

دی گئی درخواست میں یہ بتانے کے لیے ماخذ شامل اور خارج کیے گئے ہیں کہ آپ دی گئی دستاویز میں کن فیلڈز کو بازیافت کرنا چاہتے ہیں۔

نتیجے میں آؤٹ پٹ دکھایا گیا ہے:

نتیجہ

اس پوسٹ میں، ہم نے Elasticsearch multi-get API کے ساتھ کام کرنے کے بنیادی اصولوں پر تبادلہ خیال کیا جو آپ کو ان کی IDs کی بنیاد پر مختلف ذرائع سے متعدد دستاویزات حاصل کرنے کی اجازت دیتا ہے۔ مزید معلومات کے لیے بلا جھجھک دیگر دستاویزات کو دریافت کریں۔

مبارک کوڈنگ!