ডেটা স্ট্রাকচার যা দক্ষ ট্যাগ ভিত্তিক দৃশ্যের জন্য অনুমতি দেয়


11

আমি নিম্নলিখিতগুলির মতো ডেটা সংরক্ষণের জন্য অত্যন্ত দক্ষ ডেটা কাঠামোটি খুঁজছি।

আইডি ট্যাগস অর্ডার 1 অর্ডার 2 
--------------------------
1 1,2 1 1
2 2,5 2 3
3 1,7 4 7
4 6 3 0

আমি যে আমার ট্যাগের একটি অভিব্যক্তি ধারণকারী সব ID- র একটি তালিকা দিতে হবে এমনভাবে এই কাঠামো অনুসন্ধান পাবে প্রয়োজন - সমর্থনকারী ANDএবং ORএবং NOTঅপারেশন। যেমন। ((1 বা 2) এবং 7)

ফলাফলের ক্রমগুলি (অর্ডার 1 বা অর্ডার 2) নির্দিষ্ট করতে এবং optionচ্ছিক অফসেট সহ সর্বাধিক সারিগুলি নির্দিষ্ট করতে সক্ষম হতে হবে। প্রথম 30-100 ফলাফল আনার জন্য পারফরম্যান্স মূল।

অবশেষে, "ট্যাগ সম্পর্কগুলি" অনুসন্ধান করার জন্য আমার একটি সস্তা উপায় প্রয়োজন উদাহরণস্বরূপ আমি জানতে চাইছি কোন ট্যাগগুলি (1 বা 2) ট্যাগগুলির সাথে "সম্পর্কিত" এবং কোন ফ্রিকোয়েন্সিতে। মানে কোন ট্যাগগুলি 1 সে 2 হিসাবে একই সেটে উপস্থিত হয় ... ফ্রিকোয়েন্সি অনুসারে অর্ডার করা হয়।

কোন ধরণের ডেটা স্ট্রাকচার (বা স্ট্রাকচারের সেট) এই ধরণের কাজের জন্য অত্যন্ত দক্ষ হবে তা সম্পর্কে কোনও ধারণা?

(আমি এটি সাইটের এসই পরিবারের ট্যাগযুক্ত পৃষ্ঠাগুলি পুনরায় ডিজাইনের জন্য ধারণার প্রমাণ হিসাবে ব্যবহার করতে চাই )


1
কেবল একটি মন্তব্য (সম্ভবত তুচ্ছ) আপনি কেন একটি রিলেশনাল ডাটাবেস ম্যানেজমেন্ট সিস্টেমের উপর নির্ভর করেন না? আপনি <আইডি, ট্যাগ> জোড়া দিয়ে একটি সারণী সংজ্ঞায়িত করতে পারেন এবং ট্যাগ কলামে একটি সূচক যুক্ত করতে পারেন। তারপরে আপনি ডেটা বের করার জন্য স্ট্যান্ডার্ড এসকিউএল কোয়েরিগুলি ব্যবহার করতে পারেন। আরডিবিএমএস দক্ষতার সাথে ক্যোয়ারী অপ্টিমাইজেশন এবং আউটপুট বাছাইয়ের "নোংরা" কাজ করবে।
মারজিও ডি বায়াসি

@ বাও, এক্সপ্রেশনগুলি উচ্চ মাত্রায় অবিশ্বাস্যভাবে অদক্ষ হয়ে থাকে, স্বাবলম্বগুলি রাতারাতি কোয়েরিতে পরিণত হয়।
স্যাম জাফরান

@ সাম: ঠিক আছে আপনার কাজটি বেশ সাধারণ তাই আমি ভেবেছিলাম একটি ভাল আরডিবিএমএস (একটি ডেটা মাইনিং সরঞ্জাম সহ) কাজটি করতে পারে। আমি মেঝেটি কোনও ডেটা স্ট্রাকচার বিশেষজ্ঞের কাছে রেখে দিই। :-)
মারজিও ডি বায়াসি

আমি বিশ্বাস করি যে, এবং এর সমস্ত সংমিশ্রণের অনুমতি দেওয়া, বা না, এমন কোনও ডেটা কাঠামো তৈরি করা কঠিন করে তুলবে যা সমস্ত আইটেমের মধ্যে তালিকাবদ্ধ না করে (সম্ভবত এটি 3-সিএনএফ-এ সীমাবদ্ধ থাকতে পারে?)। যদি এ জাতীয় কোনও সীমাবদ্ধতা বিদ্যমান না থাকে, তবে আপনি সম্ভবত 30-100 না পাওয়া পর্যন্ত আপনার রেকর্ডগুলি (নির্দিষ্ট ক্রমে) চালান। যদিও, সাধারণভাবে, আমি আপনার জন্য ভারী উত্তোলন করতে একটি ডেটাবেস ব্যবহার করার ভোরের পরামর্শের সাথে একমত।
বিজেওট

কোনও বিশেষজ্ঞ নয়, তবে আমি মনে করি আপনি ট্যাগ সম্পর্কে জিজ্ঞাসা করার পথে যদি আপনি কিছু বিধিনিষেধ না রাখেন তবে এটি কঠিন হতে চলেছে। সেগুলি সিএনএফ-এ সীমাবদ্ধ করা (যেমন বিবিজোট প্রস্তাবিত) একটি উপায়, অন্যটি কোয়েরিটি অল্প সংখ্যক দ্বারা জিজ্ঞাসা করতে পারে এমন বিভিন্ন ট্যাগের সংখ্যাকে সীমাবদ্ধ করছে (বলুন 6)।
কাভেহ

উত্তর:


6

এটি হ'ল একটি দক্ষ ডেটা কাঠামোর জবাব নয়, বরং @bbejot এবং @ Kaveh এর মন্তব্যের উপর একটি বিস্তৃত বিবরণ যা বর্তমান প্রশ্নটি দেওয়া হয়েছে তার জন্য আমাদের কেন এমন কিছু আশা করা উচিত নয় যা এটি অনুসন্ধান করার চেয়ে অনেক ভাল করে? পুরো ডাটাবেস যুক্তিটি SAT থেকে হ্রাস, ঘনিষ্টতা সময়ের অনুমান এবং অনেকগুলি হাত-avingেউয়ের উপর ভিত্তি করে তৈরি ।

এনএক্স|এক্স|=এনএক্স=1এক্স=012এনএকজনএনডিহেআরএনহেটিএন2এন

আমাদের ক্যোয়ারির দৈর্ঘ্যে দক্ষতার সন্ধানের আশা করা উচিত নয় (স্যাট হ্রাস করে)। তাত্পর্যপূর্ণ সময় অনুমানের দ্বারা ডাটাবেসের সমস্ত আইটেম দেখার চেয়ে আমাদের আরও ভাল আশা করা উচিত নয়।

এন1


ভাল পর্যবেক্ষণ। প্রতিটি প্রশ্নের সর্বাধিক 5 টি ট্যাগ থাকে, তাই ট্যাগ সম্পর্কে কোয়েরি 5-সিএনএফ সমতুল্য।
কাভেহ

ধন্যবাদ! হ্যাঁ আমরা এখানে আরও 5-সিএনএফ ধরে নিতে পারি, ট্যাগিং আচরণ এলোমেলো নয়। সাধারণভাবে লোকেরা সর্বাধিক সাধারণ ট্যাগ দিয়ে স্টাফ ট্যাগ করবে, যাতে এটি কয়েকটি অন্যান্য শর্টকাটের অনুমতি দেয়।
স্যাম জাফরান

1
@ কাভেহ, আমরা মেমরি কাঠামোয় একটি রোলিং শেষ করেছি। কয়েকটি অ-তুচ্ছ শর্টকাট রয়েছে, হর্ট বাছাই বা একটি পরিবর্তিত দ্রুত সাজানোর সাহায্যে বাছাই হ'ল একটি বাধা n প্রাক-গণনা করার ধরণগুলি আপনাকে পিভটগুলি আরও দক্ষতার সাথে বেছে নিতে এবং যখন একটি পূর্ণ স্ক্যানের প্রয়োজন হয় তখন প্রকারগুলি এড়াতে দেয়। মাল্টিথ্রেডিং নির্বাচনের গতি বাড়ায়। কাঠামোগুলির সাথে ব্যবহারকারীদের ইন্টারঅ্যাক্ট করার আগে প্রচুর কাজ পিছিয়ে যেতে পারে er আশ্চর্যজনকভাবে আমাদের ইন-মেমরি স্ট্রাকচারগুলি স্ট্যাক ওভারফ্লো ডেটা সেটটিতে অনুসন্ধানের জন্য গড়ে গড়ে 0 মিমি করে।
স্যাম জাফরান

@ সামস্যাফ্রন - এমএসও পোস্টটি কোথায় এই বৈশিষ্ট্যটির বিশদ বর্ণনা করছে? আমরা এখানে একটি বাগ রিপোর্ট পেয়েছি ।
কেভিন ভার্মির

5

এটি একটি দুর্দান্ত সোজা উত্তর, তবে আমি কার্যকর মনে করি:

Map Tag ([Id],[Id])হে((এন))

আপনি যদি অন্য কোনও মানচিত্রে ফেলে দেন Map Id (Set Tag)তবে সম্পর্কিত একটি ফ্রিকোয়েন্সি উত্পন্ন করে একটি তালিকা দেওয়া Idহবে shouldহে(এন*(মি))


আমি একমত হতে চাইছি যে কয়েকটি খুব সাধারণ কাঠামো যেমন মানচিত্রের একাধিকবার স্ফীত হয়েছে এখানে যাওয়ার সর্বোত্তম উপায় হতে পারে। স্মৃতিশক্তি সস্তা এবং একাধিক ক্যাশে বজায় রাখা খুব কঠিন নয়
স্যাম জাফরন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.