Full-text এবং Structured Search Elasticsearch-এর দুটি ভিন্ন ধরনের অনুসন্ধান পদ্ধতি, এবং এদের প্রতিটির নিজস্ব ব্যবহার ক্ষেত্র রয়েছে। চলুন, এদের সম্পর্কে বিস্তারিত আলোচনা করা যাক:

1. Full-text Search

Full-text Search এমন একটি পদ্ধতি যেখানে কোন ডকুমেন্টের ভেতরের টেক্সট থেকে নির্দিষ্ট শব্দ বা কীওয়ার্ড খোঁজা হয়। এটি সাধারণত বৃহৎ পরিমাণের টেক্সট ডাটা যেমন আর্টিকেল, ব্লগ পোস্ট, প্রোডাক্ট ডেসক্রিপশন, ইত্যাদি-তে ব্যবহার করা হয়।

Elasticsearch-এর inverted index ব্যবহার করে Full-text Search পরিচালিত হয়, যা দ্রুত এবং কার্যকরীভাবে ডকুমেন্টে থাকা শব্দগুলি খুঁজে বের করতে সাহায্য করে।

উদাহরণ: যদি আপনার একটি ব্লগ ডাটাবেস থাকে এবং আপনি "Elasticsearch tutorial" কীওয়ার্ড দিয়ে সার্চ করতে চান, তাহলে Full-text Search সেই ডকুমেন্টগুলি খুঁজে বের করবে যেগুলিতে এই শব্দগুলো উপস্থিত আছে।

Full-text Search-এর ফিচার:

  • অন্যান্য ভাষা সমর্থন: Elasticsearch বিভিন্ন ভাষার জন্য টোকেনাইজেশন এবং স্টেমিং সাপোর্ট করে।
  • র‍্যাঙ্কিং এবং রিলেভেন্স স্কোর: Full-text Search ডকুমেন্টগুলির রিলেভেন্স স্কোর (যেমন, কোন ডকুমেন্ট কতটা ভালোভাবে সার্চ টার্মের সাথে মিলছে) তৈরি করে এবং সেটির ভিত্তিতে ফলাফল র‍্যাঙ্কিং করে।
  • Fuzziness: কাছাকাছি মিল থাকা শব্দগুলিও খুঁজে বের করা যায়, যা টাইপো বা বানানের ত্রুটি সমাধান করতে সক্ষম।

Full-text Search উদাহরণ:

{
  "query": {
    "match": {
      "content": "Elasticsearch tutorial"
    }
  }
}

এখানে match কোয়েরি ব্যবহার করা হয়েছে যাতে content ফিল্ডে থাকা ডকুমেন্টগুলি খুঁজে বের হয় যেগুলিতে "Elasticsearch tutorial" শব্দটি উপস্থিত রয়েছে।

2. Structured Search

Structured Search এমন এক ধরনের অনুসন্ধান যেখানে আপনার ডকুমেন্টে থাকা নির্দিষ্ট ফিল্ড বা অ্যাট্রিবিউটের উপর ভিত্তি করে সার্চ করা হয়। এটি সাধারণত এমন ডাটা খোঁজার জন্য ব্যবহার করা হয় যা স্পষ্টভাবে সংজ্ঞায়িত (structured) এবং একটি নির্দিষ্ট ফিল্ডে সংরক্ষিত থাকে। উদাহরণস্বরূপ, প্রোডাক্ট আইডি, ক্যাটেগরি, ডেট টাইম, স্ট্যাটাস ইত্যাদি।

Structured Search এর কিছু সাধারণ ব্যবহার ক্ষেত্র:

  • ডকুমেন্টের নির্দিষ্ট স্ট্যাটাস অনুযায়ী ফিল্টারিং (যেমন, "published" বা "draft" স্ট্যাটাস খোঁজা)
  • নির্দিষ্ট ডেট রেঞ্জের মধ্যে থাকা ডকুমেন্ট খোঁজা
  • নির্দিষ্ট সংখ্যা বা মানের ভিত্তিতে ফিল্টারিং করা (যেমন, প্রোডাক্টের মূল্য একটি নির্দিষ্ট সীমার মধ্যে থাকা)

Structured Search উদাহরণ:

{
  "query": {
    "bool": {
      "filter": [
        { "term": { "status": "published" } },
        { "range": { "price": { "gte": 100, "lte": 500 } } }
      ]
    }
  }
}

উপরের উদাহরণে:

  • term ফিল্টার ব্যবহার করে শুধুমাত্র "published" স্ট্যাটাসের ডকুমেন্টগুলি খোঁজা হচ্ছে।
  • range ফিল্টার ব্যবহার করে প্রোডাক্টের মূল্য ১০০ থেকে ৫০০ এর মধ্যে থাকা ডকুমেন্টগুলি ফিল্টার করা হচ্ছে।

Full-text vs. Structured Search: তুলনা

বৈশিষ্ট্যFull-text SearchStructured Search
কোয়েরি পদ্ধতিInverted Index ব্যবহার করে শব্দ অনুসন্ধানফিল্ড-ভিত্তিক সার্চ (Term, Range, ইত্যাদি)
ডাটা টাইপআনস্ট্রাকচারড বা টেক্সট ডাটাস্ট্রাকচারড বা নির্দিষ্ট ফিল্ডভিত্তিক ডাটা
ফিল্ড এবং রেঞ্জ সার্পোটসাধারণত বড় টেক্সট ফিল্ডে প্রয়োগ হয়নির্দিষ্ট ফিল্ড (সংখ্যা, ডেট, স্ট্যাটাস)
রিলেভেন্স স্কোররিলেভেন্স স্কোর এবং র‍্যাঙ্কিং সমর্থন করেসাধারণত রিলেভেন্স স্কোর প্রয়োজন হয় না

সংক্ষিপ্ত সারমর্ম

Elasticsearch-এ Full-text Search এবং Structured Search একসাথে বা আলাদা ভাবে ব্যবহার করা যায়, যা আপনার ডাটার ওপর ভিত্তি করে দ্রুত এবং কার্যকর অনুসন্ধান করতে সাহায্য করে। Full-text Search সাধারণত বড় এবং আনস্ট্রাকচারড টেক্সট ডাটার জন্য ব্যবহার করা হয়, যেখানে Structured Search ব্যবহৃত হয় নির্দিষ্ট এবং স্ট্রাকচারড ফিল্ডের ওপর অনুসন্ধান করার জন্য।

Content added By

আরও দেখুন...

Promotion