Elasticsearch-এ Index, Document এবং Mapping কীভাবে তৈরি করবেন
Elasticsearch-এ Index ডেটা সংরক্ষণের জন্য একটি লজিক্যাল ডাটাবেস হিসেবে কাজ করে, যেখানে Document গুলো JSON ফরম্যাটে সংরক্ষিত থাকে। Mapping হলো ডকুমেন্টের ফিল্ডের স্ট্রাকচার এবং ডেটা টাইপ নির্ধারণ করার জন্য ব্যবহৃত একটি পদ্ধতি, যা Elasticsearch-কে ডেটা ইন্ডেক্স এবং সার্চ করতে সহায়ক করে। নিচে Elasticsearch-এ Index, Document এবং Mapping তৈরি করার ধাপগুলো বিস্তারিতভাবে আলোচনা করা হলো:
১. Index তৈরি করা (Create Index)
- Elasticsearch-এ ডেটা সংরক্ষণ করতে একটি ইন্ডেক্স তৈরি করতে হয়। একটি ইন্ডেক্স তৈরি করার জন্য HTTP PUT রিকোয়েস্ট ব্যবহার করা হয়।
- উদাহরণ:
PUT /my-index- এখানে:
/my-indexহলো ইন্ডেক্সের নাম।
- সফলভাবে ইন্ডেক্স তৈরি হলে
acknowledged: trueসহ একটি রেসপন্স দেখা যাবে।
ইন্ডেক্স তৈরির সময় কাস্টম সেটিংস প্রয়োগ করা
- ইন্ডেক্স তৈরির সময় শার্ড এবং রেপ্লিকা সংখ্যা নির্ধারণ করতে পারেন:
PUT /my-index
{
"settings": {
"number_of_shards": 3,
"number_of_replicas": 1
}
}- এখানে:
- number_of_shards: ইন্ডেক্সের প্রাইমারি শার্ডের সংখ্যা।
- number_of_replicas: প্রতিটি প্রাইমারি শার্ডের রেপ্লিকা সংখ্যা।
২. Mapping তৈরি করা (Create Mapping)
- Mapping হলো ডকুমেন্টের ফিল্ড এবং তাদের ডেটা টাইপ নির্ধারণ করার একটি পদ্ধতি, যা Elasticsearch-কে ডেটা ইন্ডেক্স এবং সার্চ করতে সহায়ক করে।
- ইন্ডেক্স তৈরির সময় অথবা পরে Mapping নির্ধারণ করা যায়।
ইন্ডেক্স তৈরির সময় Mapping নির্ধারণ করা
- একটি ইন্ডেক্স তৈরি করার সময় Mapping নির্ধারণ করতে পারেন:
PUT /my-index
{
"mappings": {
"properties": {
"name": { "type": "text" },
"age": { "type": "integer" },
"occupation": { "type": "text" },
"join_date": { "type": "date" }
}
}
}- এখানে:
- properties: ডকুমেন্টের বিভিন্ন ফিল্ডের স্ট্রাকচার এবং ডেটা টাইপ ধারণ করে।
- type: ফিল্ডের ডেটা টাইপ নির্ধারণ করে, যেমন
text,integer,dateইত্যাদি।
বিদ্যমান ইন্ডেক্সে Mapping যুক্ত করা
- একটি বিদ্যমান ইন্ডেক্সে Mapping যুক্ত করতে:
PUT /my-index/_mapping
{
"properties": {
"email": { "type": "keyword" },
"phone_number": { "type": "text" }
}
}- এটি বিদ্যমান ইন্ডেক্সে নতুন ফিল্ড
emailএবংphone_numberযুক্ত করবে।
৩. Document তৈরি করা (Create Document)
একটি ডকুমেন্ট ইনডেক্স করতে HTTP POST বা PUT রিকোয়েস্ট ব্যবহার করা হয়।
উদাহরণ:
POST /my-index/_doc/1
{
"name": "John Doe",
"age": 30,
"occupation": "Software Engineer",
"join_date": "2022-05-10"
}এখানে:
/my-indexহলো ইন্ডেক্সের নাম।/_doc/1হলো ডকুমেন্ট আইডি, যা ডকুমেন্টটিকে ইউনিকভাবে চিহ্নিত করে।- JSON ফরম্যাটে ডকুমেন্টের তথ্য প্রদান করা হয়েছে।
সফলভাবে ইনডেক্স হলে created স্ট্যাটাস সহ রেসপন্স পাওয়া যাবে।
৪. Mapping এবং Document আপডেট করা
- যদি আপনি একটি নতুন ফিল্ড Mapping-এ যুক্ত করতে চান, তাহলে এটি পরে ইন্ডেক্সে যুক্ত করা যায়:
PUT /my-index/_mapping
{
"properties": {
"department": { "type": "text" }
}
}- এরপর, নতুন ফিল্ডসহ ডকুমেন্ট ইনডেক্স করতে:
POST /my-index/_doc/2
{
"name": "Jane Doe",
"age": 28,
"occupation": "Data Scientist",
"join_date": "2023-03-01",
"department": "Data Science"
}৫. ডকুমেন্ট রিট্রিভ করা (Retrieve Document)
- একটি নির্দিষ্ট ডকুমেন্ট রিট্রিভ করতে HTTP GET রিকোয়েস্ট ব্যবহার করুন:
GET /my-index/_doc/1- এটি
/my-indexইন্ডেক্সের1আইডি সহ ডকুমেন্ট রিট্রিভ করবে এবং সেই ডকুমেন্টের তথ্য JSON ফরম্যাটে রেসপন্স করবে।
৬. ডকুমেন্ট আপডেট করা (Update Document)
- Elasticsearch-এ একটি ডকুমেন্ট আপডেট করতে:
POST /my-index/_update/1
{
"doc": {
"age": 31,
"department": "Engineering"
}
}- এখানে:
"doc"ফিল্ডের ভেতরে আপডেট করা তথ্য প্রদান করা হয়।
উপসংহার
Elasticsearch-এ Index, Document, এবং Mapping তৈরি করা খুবই সহজ এবং RESTful API ব্যবহার করে এটি করা যায়। Index তৈরি করে সেটার Mapping নির্ধারণ করা Elasticsearch-কে ডেটা সঠিকভাবে ইন্ডেক্স এবং সার্চ করতে সহায়ক করে। ডকুমেন্ট ইনডেক্স করা এবং আপডেট করার মাধ্যমে ডেটা সহজে ম্যানেজ করা যায় এবং Mapping কাস্টমাইজ করে ডেটার কাঠামো নির্ধারণ করা যায়।
Read more