এন-গ্রাম দ্বারা সূচিযুক্ত ডেটা সঞ্চয় করার জন্য দক্ষ ডাটাবেস মডেল


12

আমি এমন একটি অ্যাপ্লিকেশন নিয়ে কাজ করছি যার জন্য একটি বড় টেক্সট কর্পাসে বিদ্যমান এন-গ্রামের একটি খুব বড় ডেটাবেস তৈরি করা দরকার।

আমার তিনটি দক্ষ অপারেশন প্রকারের প্রয়োজন: ল-আপ এবং সন্নিবেশ এন-গ্রাম নিজেই সূচীকরণ এবং একটি উপ-এন-গ্রাম থাকা সমস্ত এন-গ্রাম অনুসন্ধান করে।

এটি আমার কাছে শোনাচ্ছে যেমন ডাটাবেসটি একটি বিশাল ডকুমেন্ট ট্রি হওয়া উচিত এবং নথির ডাটাবেসগুলি যেমন মোঙ্গো, কাজটি ভালভাবে করতে সক্ষম হওয়া উচিত, তবে আমি সেগুলি স্কেল এ কখনও ব্যবহার করি নি।

স্ট্যাক এক্সচেঞ্জের প্রশ্ন ফর্ম্যাটটি জানা, আমি স্পষ্ট করে বলতে চাই যে আমি নির্দিষ্ট প্রযুক্তিগুলির বিষয়ে পরামর্শ চাইছি না, বরং এক ধরণের ডাটাবেস যা আমি স্কেল এ জাতীয় কিছু বাস্তবায়নের জন্য সন্ধান করা উচিত।


2
আমি মনে করি আপনি যে কাঠামোটি প্রয়োগ করতে চান এটি একটি "ট্রি" - আপনি কোনও ডিবি খুঁজে পেতে পারেন যা সেই কাঠামোর সাথে দক্ষতার সাথে কাজ করে, বা আপনার নিজের পছন্দমতো আরডিবিএমএসে নিজের রোল করা দরকার আমি বলতে পারি না।
নিল স্লেটার

উত্তর:


9

Lucene NGramTokenizer দেখুন

আপনি কি নিশ্চিত যে লুসিন বা অনুরূপ সূচীকরণ কৌশলগুলি ব্যবহার করতে পারবেন না?

ইনভার্টেড ইনডেক্সগুলি কেবল একবার এন-গ্রাম সংরক্ষণ করবে, তারপরে কেবল ডকুমেন্ট আইডিতে এনগ্রাম থাকবে; তারা এটিকে অত্যন্ত বাজে কাঁচা পাঠ্য হিসাবে সংরক্ষণ করে না store

আপনার ক্যোয়ারী সাব-এন-গ্রামযুক্ত এনজিগ্রামগুলি সন্ধান করার জন্য, আমি পর্যবেক্ষণ হওয়া এনজিগ্রামগুলিতে একটি সূচক তৈরি করব, উদাহরণস্বরূপ দ্বিতীয় লুসিন সূচক ব্যবহার করে, বা ট্রাই বা প্রত্যয় গাছের মতো অন্য কোনও স্ট্রিং সূচক । যদি আপনার ডেটা গতিশীল হয় তবে সম্ভবত লুসিন একটি যুক্তিসঙ্গত পছন্দ, আপনার এন-গ্রামগুলি খুঁজে পেতে বাক্যাংশের অনুসন্ধানগুলি ব্যবহার করে।


3

মূলত এই কাজের জন্য আপনি বি + ট্রি ভিত্তিক সূচকের ভাল সমর্থন সহ যে কোনও এসকিউএল ডাটাবেসকে দক্ষতার সাথে ব্যবহার করতে পারেন (মাইএসকিউএল স্যুট আপনার প্রয়োজন কেবল নিখুঁত প্রয়োজন)।

3 টি টেবিল তৈরি করুন:

  1. ডকুমেন্টস টেবিল, কলাম: আইডি / ডকুমেন্ট
  2. এন-গ্রাম টেবিল: এন_গ্রাম_আইডি / এন_গ্রাম
  3. এন-গ্রাম এবং নথিগুলির মধ্যে ম্যাপিং: ডকুমেন্ট_আইডি / এন_গ্রাম_আইডি

এন-গ্রাম টেবিল / এন_গ্রাম স্ট্রিং এবং ম্যাপিং টেবিল / এন_গ্রাম_আইডি তে সূচি তৈরি করুন, প্রাথমিক কীগুলি ডিফল্টরূপেও সূচী করা হবে।

আপনার অপারেশন দক্ষ হবে:

  1. নথির সন্নিবেশ: কেবলমাত্র সমস্ত এন-গ্রাম বের করুন এবং নথির সারণী এবং এন-গ্রাম সারণিতে সন্নিবেশ করুন
  2. ইন_গ্রামের জন্য অনুসন্ধান সূচকের সহায়তায় দ্রুত হবে
  3. উপ-এন-গ্রামযুক্ত সমস্ত এন-গ্রামের জন্য জিজ্ঞাসা করা হচ্ছে: ২ টি পদক্ষেপে - 2 য় টেবিল থেকে উপ-এন-গ্রাম সমেত সমস্ত এন-গ্রাম সূচকের ভিত্তিতে ক্যোয়ারী। তারপরে - এই এন-গ্রামগুলির জন্য প্রতিটি সম্পর্কিত নথি পুনরুদ্ধার করুন।

এমনকি এই সমস্ত ক্রিয়াকলাপগুলি অর্জন করতে আপনার যোগদানের প্রয়োজনও হবে না যাতে সূচকগুলি অনেক সাহায্য করবে। এছাড়াও যদি কোনও মেশিনে ডেটা স্যুট না করে - আপনি একটি সার্ভার থেকে শুরু করে এন_গ্রাম এবং অন্য বা অন্য উপযুক্ত স্কিমের ওজ থেকে স্ট্যান্ড করে এন-গ্রাম সঞ্চয় করার মতো, আপনি শারডিং স্কিমটি বাস্তবায়ন করতে পারেন।

এছাড়াও আপনি মঙ্গোডিবি ব্যবহার করতে পারেন, তবে আপনাকে নিশ্চিত করতে পারি না ঠিক কীভাবে আপনাকে ইনডেক্সিং স্কিমটি প্রয়োগ করতে হবে। মোঙ্গোডিবি-র জন্য আপনি ইতিমধ্যে অন্তর্নির্মিত হিসাবে বিনামূল্যে শার্পিং স্কিম পাবেন।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.