sp_BlitzErik এর উত্তর অনেক ভাল পয়েন্টগুলিতে আঘাত করে, তবে আমি মনে করি না যে কেন আপনার সম্পূর্ণ পাঠ্য অনুসন্ধানটি ব্যবহার করা উচিত নয়। আপনি যা ভাবেন তা করার জন্য সম্পূর্ণ পাঠ্য অনুসন্ধানের ব্যবস্থা নেই। একাধিক ক্ষেত্র অনুসন্ধান করার জন্য এটি সেখানে নেই। এটি শব্দের সামগ্রীকে ভেক্টরাইজ করার জন্য এবং অভিধান, স্টাবিং, লেসারস, গেজেটরিজ, স্টপ-ওয়ার্ড নির্মূলকরণ এবং অন্যান্য কৌশলগুলির অনেকগুলি প্রয়োগ করে যার মধ্যে কোনটিই প্রযোজ্য নয়। অথবা, এখনও প্রয়োগ করার জন্য দেখানো হয়নি।
আমি সমাধানের সাথেও একমত নই, যদিও এসকিউএল সার্ভারে আরও কীভাবে এটি করা যায় তা সম্পর্কে আমি নিশ্চিত নই। আসুন পোস্টগ্রিজ এসকিউএল এর জন্য তার ডেটাটি পুনরায় তৈরি করুন - পোস্টগ্র্রেএসকিউএল এও এটি তৈরি করা অনেক পরিষ্কার।
CREATE TABLE fulltextindexesarestupid
AS
SELECT
id,
CASE WHEN Id % 15 = 0 THEN 'Bad'
WHEN Id % 3 = 0 THEN 'Idea'
WHEN Id % 5 = 0 THEN 'Jeans'
END AS StopAbusingFeatures
FROM generate_series(1,1000000) AS id;
এখন আপনি যা চান তা একটি এনাম টাইপ,
CREATE TYPE foo AS ENUM ('Bad', 'Idea', 'Jeans');
ALTER TABLE fulltextindexesarestupid
ALTER StopAbusingFeatures
SET DATA TYPE foo
USING StopAbusingFeatures::foo;
এখন আপনি পূর্ণসংখ্যা উপস্থাপনার স্ট্রিংগুলি ভেঙে ফেলেছেন। তবে আরও ভাল আপনি আগের মত তাদের জিজ্ঞাসা করতে পারেন।
SELECT *
FROM fulltextindexesarestupid
WHERE StopAbusingFeatures = 'Bad';
এর প্রভাব আছে।
- আপনার বিভাগগুলি একটি গণনা করা প্রকারের বিষয়টি গোপন করে। সেই জটিলতাটি টাইপের মধ্যে আবদ্ধ থাকে এবং ব্যবহারকারীর কাছ থেকে লুকানো থাকে।
- এটি সেই ধরণের উপরের বিভাগগুলিতে রক্ষণাবেক্ষণও করে।
- এটি মানসম্মত।
- এটি সারি আকার বাড়ায় না।
এই সুবিধাগুলি ব্যতীত, আপনি মূলত স্ট্রিং তুলনাটি অপ্টিমাইজ করার চেষ্টা করছেন। তবে হায়, আমি স্পষ্টভাবে নিশ্চিত নই যে পরামর্শের কোড অনুসারে sp_BlitzEric কীভাবে উত্তর পেয়েছে,
like '%rock%' or
like '%paper%' or
like '%scisor%' or
like '%car%' or
like '%pasta%'
আপনি এনাম ব্যবহার করে পূর্ণসংখ্যায় টোকেনগুলি ভেঙে ফেলতে পারেন, বা স্প_ব্লিটজ এরিকের প্রস্তাবিত হ্যান্ড-রোলিং পদ্ধতিটি যদি আপনি ভাঙতে পারেন তবে কেন আপনি অযাচিত-পছন্দ মতো করছেন? উদাহরণস্বরূপ, যদি আপনি জানেন '% পাস্তা%' হ'ল টোকেন 'পাস্তা' কেন %
এটির উভয় পাশেই আপনার রয়েছে। '%' ব্যতীত এটি একটি সাম্যতা যাচাই করে এবং এটি পাঠ্যের মতোও দ্রুত হওয়া উচিত।