Elasticsearch انڈیکس کیسے بنائیں

How Create Elasticsearch Indices



Elasticsearch مقبول ELK اسٹیک کا ایک حصہ ہے جو لاگ انالیٹکس اور سرچ کے لیے استعمال ہوتا ہے۔ ایپلی کیشنز اور سسٹمز مسلسل ڈیٹا کو لاگ کر رہے ہیں جو مسائل کے حل اور ٹریکنگ کے مسائل کے لیے بہت مفید ثابت ہو سکتے ہیں۔ ELK اسٹیک کا استعمال کرتے ہوئے ، آپ کے پاس ان کاموں کو جلدی اور بہت آسانی سے انجام دینے کے لیے بہترین ٹولز ہیں۔

اس فوری سبق میں ، ہم Elasticsearch پر غور کریں گے ، خاص طور پر Elasticsearch انجن میں انڈیکس بنانے کا طریقہ۔ اگرچہ آپ کو اس ٹیوٹوریل پر عمل کرنے کے لیے ELK اسٹیک کے بارے میں کسی جامع معلومات کی ضرورت نہیں ہے ، لیکن درج ذیل موضوعات کی بنیادی تفہیم ہونا فائدہ مند ثابت ہو سکتا ہے۔







  • ٹرمینل کا استعمال ، خاص طور پر ، CURL۔
  • APIs اور JSON کا بنیادی علم۔
  • HTTP درخواست بنانا

نوٹ: یہ ٹیوٹوریل یہ بھی فرض کرتا ہے کہ آپ کے پاس Elasticsearch انسٹال ہے اور آپ کے سسٹم پر چل رہا ہے۔



Elasticsearch انڈیکس کیا ہیں؟

چیزوں کو زیادہ آسان یا پیچیدہ کیے بغیر ، Elasticsearch انڈیکس متعلقہ JSON دستاویزات کا مجموعہ ہے۔



جیسا کہ پچھلی پوسٹ میں ذکر کیا گیا ہے ، Elasticsearch انڈیکس JSON اشیاء ہیں - Elasticsearch میں اسٹوریج کی بنیادی اکائی سمجھی جاتی ہے۔ یہ متعلقہ JSON دستاویزات ایک یونٹ میں محفوظ ہیں جو انڈیکس بناتا ہے۔ Elasticsearch دستاویزات کو متعلقہ ڈیٹا بیس میں جدولوں کے طور پر سوچیں۔





آئیے ایک Elasticsearch انڈیکس کو SQL دنیا میں ڈیٹا بیس کے طور پر متعلقہ کریں۔

  • MySQL => ڈیٹا بیس => میزیں => کالم/قطاریں۔
  • Elasticsearch => انڈیکس => اقسام => پراپرٹیز کے ساتھ JSON دستاویزات۔

Elasticsearch انڈیکس بنانے کا طریقہ

Elasticsearch اپنی خدمات کو بے نقاب کرنے کے لیے ایک طاقتور اور بدیہی REST API استعمال کرتا ہے۔ یہ فعالیت آپ کو Elasticsearch کلسٹر پر آپریشن کرنے کے لیے HTTP درخواستیں استعمال کرنے کی اجازت دیتی ہے۔ لہذا ، ہم ایک نیا انڈیکس بنانے کے لیے کریٹ انڈیکس API کا استعمال کریں گے۔



اس گائیڈ کے لیے ، ہم درخواستیں بھیجنے اور تمام صارفین کے لیے سالمیت اور استعمال کو محفوظ رکھنے کے لیے CURL استعمال کریں گے۔ تاہم ، اگر آپ کو CURL کے ساتھ غلطیاں پیش آتی ہیں تو ، Kibana Console استعمال کرنے پر غور کریں۔

Elasticsearch کلسٹر میں نیا انڈیکس بنانے کے لیے نحو یہ ہے:

PUT /

انڈیکس بنانے کے لیے ، آپ کو صرف انڈیکس کا نام دوسرے پیرامیٹرز کے بغیر پاس کرنا ہے ، جو ڈیفالٹ سیٹنگز کا استعمال کرتے ہوئے انڈیکس بناتا ہے۔

آپ انڈیکس کی مختلف خصوصیات کی بھی وضاحت کر سکتے ہیں ، جیسے انڈیکس باڈی میں:

  • انڈیکس کی ترتیبات۔
  • انڈیکس عرفی نام
  • انڈیکس فیلڈز کے لیے میپنگ۔

انڈیکس کا نام ایک مطلوبہ پیرامیٹر ہے۔ بصورت دیگر ، آپ کو URIL (/) کے لیے ایک خامی ملے گی

curl -X PUT لوکل ہوسٹ: 9200۔
{'error': 'uri کے لیے غلط HTTP طریقہ [/] اور طریقہ [PUT] ، اجازت: [DELETE ، HEAD ، GET]' ، 'status': 405}

single_index نام کے ساتھ ایک نیا انڈیکس بنانے کے لیے ، ہم درخواست منظور کرتے ہیں:

PUT /single_index

CURL کے لیے ، کمانڈ استعمال کریں:

curl -X PUT 'localhost: 9200/single_index؟ pretty'

اس کمانڈ کے نتیجے میں HTTP اسٹیٹس 200 ٹھیک ہونا چاہیے اور ایک پیغام کے ساتھ تسلیم شدہ: true as:

{
تسلیم کیا: سچ ،
'shards_acknowledge': سچ ،
'index': 'single_index'
}

اوپر دی گئی درخواست ڈیفالٹ سیٹنگ کے ساتھ انڈیکس سنگل_ انڈیکس بناتی ہے کیونکہ ہم نے کوئی کنفیگریشن نہیں بتائی۔

انڈیکس نام کے قواعد

Elasticsearch انڈیکس کے لیے نام بناتے وقت ، آپ کو درج ذیل نام کے معیارات پر عمل کرنا چاہیے:

  1. انڈیکس کا نام صرف چھوٹے کیس میں ہونا چاہیے۔
  2. انڈیکس کے نام ڈیش (-) ، انڈر سکور (_) ، یا اضافی نشان (+) سے شروع نہیں ہو سکتے
  3. نام نہیں ہو سکتے۔ یا ..
  4. انڈیکس کے ناموں میں خاص حروف شامل نہیں ہو سکتے ہیں جیسے: ، /، *،؟،،، |، `` (space character)،، #
  5. انڈیکس ناموں کی لمبائی 255 بائٹس سے کم ہونی چاہیے۔ ملٹی بائٹ حروف انڈیکس نام کی کل لمبائی میں شمار ہوں گے۔ مثال کے طور پر ، اگر کسی ایک حرف کی لمبائی 8 بائٹس ہے ، نام کی کل باقی لمبائی 255 - 8 ہے۔
  6. Elasticsearch کے تازہ ترین ورژن میں ، جو نام a سے شروع ہوتے ہیں۔ Elasticsearch پلگ ان کے استعمال کردہ پوشیدہ انڈیکس اور اندرونی انڈیکس کے لیے محفوظ ہیں۔

انڈیکس باڈی بنانے کا طریقہ

انڈیکس بنانے کے لیے PUT کی درخواست کا استعمال کرتے وقت ، آپ مختلف دلائل پاس کر سکتے ہیں جو انڈیکس کی ترتیبات کی وضاحت کرتے ہیں جسے آپ بنانا چاہتے ہیں۔ اقدار جو آپ جسم میں بیان کر سکتے ہیں ان میں شامل ہیں:

  • عرفی نام: انڈیکس کے لیے عرفی نام بتاتا ہے جسے آپ بنانا چاہتے ہیں یہ پیرامیٹر اختیاری ہے۔
  • ترتیبات: یہ انڈیکس کے لیے کنفیگریشن آپشنز کی وضاحت کرتا ہے جسے آپ بنانا چاہتے ہیں۔ اگر آپ کسی پیرامیٹر کی وضاحت کرنے میں ناکام رہتے ہیں تو ، انڈیکس ڈیفالٹ کنفیگریشن کا استعمال کرتے ہوئے بنتا ہے۔
  • نقشہ سازی: یہ انڈیکس میں فیلڈز کے لیے میپنگ کی وضاحت کرتا ہے۔ نقشے میں آپ جن خصوصیات کو شامل کر سکتے ہیں ان میں شامل ہیں:
    • فیلڈ کا نام۔
    • ڈیٹا کی قسم۔
    • نقشہ سازی کا پیرامیٹر۔

باڈی کنفیگریشن کے ساتھ انڈیکس بنانے کی ایک مثال کے لیے ، نیچے دی گئی درخواست پر غور کریں:

PUT /single_index_with_body
{
'ترتیبات': {
'number_of_shards': 2 ،
'number_of_replicas': 2۔
} ،
نقشہ سازی: {
'خصوصیات': {
'field1': {'type': 'object'}
}
}
}

ایک CURL مساوی درخواست کے لیے:

curl -XPUT 'http: // localhost: 9200/single_index_with_body' -H 'Content -type: application/json' -d '{' settings ': {' number_of_shards ': 2،' number_of_replicas ': 2}،' mappings ' : '' خصوصیات ': {' field1 ': {' type ':' object '}}}}'

مذکورہ درخواست ایک نیا انڈیکس تخلیق کرتی ہے جس کا نام single_index_with_body ہے جس میں 2 عدد شارڈز اور 2 نقلیں ہیں۔ یہ نام فیلڈ 1 کے فیلڈ کے ساتھ ایک میپنگ بھی بناتا ہے اور JSON آبجیکٹ کے طور پر ٹائپ کرتا ہے۔

درخواست بھیجنے کے بعد ، آپ کو درخواست کی حیثیت کے ساتھ جواب ملے گا:

{
تسلیم کیا: سچ ،
'shards_acknowledge': سچ ،
'index': 'single_index_with_body'
}

تسلیم شدہ ظاہر کرتا ہے کہ انڈیکس کلسٹر میں کامیابی کے ساتھ بنایا گیا تھا ، جبکہ shards_acknowledge سے پتہ چلتا ہے کہ آیا مقررہ انڈیکس میں ہر شارڈ کے لیے مطلوبہ تعداد میں شارڈ کاپیاں وقت ختم ہونے سے پہلے شروع کی گئی تھیں۔

Elasticsearch انڈیکس کیسے دیکھیں

اپنے بنائے ہوئے انڈیکس کے بارے میں معلومات دیکھنے کے لیے ، انڈیکس بنانے کے لیے اسی طرح کی درخواست استعمال کریں ، لیکن PUT کے بجائے HTTP طریقہ استعمال کریں:

GET /single_index_with_body

CURL کے لیے ،

curl -XGET http: // localhost: 9200/single_index_with_body

یہ کمانڈ آپ کو درخواست کردہ انڈیکس کے بارے میں تفصیلی معلومات دے گا جیسے:

{
'single_index_with_body': {
'عرفی نام': {} ،
'نقشہ سازی': {
'خصوصیات': {
'field1': {
'type': 'آبجیکٹ'
}
}
} ،
'ترتیبات': {
'انڈیکس': {
'روٹنگ': {
'مختص کرنے' : {
'شامل کریں': {
'_tier_preference': 'data_content'
}
}
} ،
'number_of_shards': '2' ،
'provided_name': 'single_index_with_body' ،
'creation_date': '1611045687208' ،
'number_of_replicas': '2' ،
'uuid': '3TRkO7xmQcSUOOGtb6pXVA' ،
'ورژن': {
'تخلیق': '7100299'
}
}
}
}
}

نتیجہ

اس گائیڈ میں نئے انڈیکس بنانے کے لیے انڈیکس API بنانے کے لیے Elasticsearch کے ساتھ کام کرنے کے طریقے پر تبادلہ خیال کیا گیا۔ ہم نے انڈیکس اور کنفیگریشن سیٹنگ کے لیے موزوں نام بنانے کے طریقے پر بھی تبادلہ خیال کیا۔

اس گائیڈ کا استعمال کرتے ہوئے ، اب آپ Elasticsearch API کا استعمال کرتے ہوئے انڈیکس بنا اور دیکھ سکتے ہیں۔