আমার জাভা ভিত্তিক ওয়েব অ্যাপ্লিকেশনটিতে ব্যবহারকারীদের জমা দেওয়ার বাইরে গৌরব ফিল্টার করা দরকার। ক্লায়েন্ট উভয় সচেতন Scunthorpe, ইংল্যান্ড-সমস্যা এবং Clbuttic সমস্যা এবং পরিণতি গ্রহণ করেছেন। দয়া করে, আমি সেন্সরশিপের অভাবের গুণাবলী নিয়ে বিতর্ক করতে চাই না।
ডেটা দুটি বিট আছে:
- ব্যবহারকারীর জমা দেওয়া, যাতে সম্ভাব্য 500 শব্দ বা তাই থাকতে পারে;
- একক কলামের ডাটাবেস সারণীতে এমন শব্দ রয়েছে যা নিষিদ্ধ। এই সারণীতে অনেক হাজার রেকর্ড থাকতে পারে।
বর্তমান সমাধানটি আমার কাছে ভুল বলে মনে হচ্ছে:
- পুরো টেবিলটি স্ট্যাটিক স্ট্রিং [] এ স্টার্টআপের সময় একটি সিঙ্গলটনে লোড করা হয় (এভাবে স্মৃতিতে থাকে)।
- প্রতিটি ব্যবহারকারীর জমা দেওয়ার জন্য আমরা অ্যারের মধ্য দিয়ে লুপ করি এবং স্ট্রিং []] তে কোনও প্রদত্ত শব্দ জমা দেওয়া আছে কিনা তা দেখার জন্য একটি .indexOf () করি।
- যদি এটি উপস্থিত হয়, আমরা% $ # @% - শৈলীর অক্ষর দিয়ে প্রতিস্থাপন করব। এটি ব্যবহারকারীর জমা দেওয়ার ক্ষেত্রে টোকেনাইজ করে, সম্পূর্ণ ব্যবহারকারী জমা দেওয়ার মাধ্যমে টোকেন (আবার) হিসাবে লুপিং করে এবং পাওয়া শব্দের প্রতিটি উদাহরণকে প্রতিস্থাপন করে is
এই সমাধানে উজ্জ্বলতা থাকতে পারে তবে আমি সন্দেহবাদী। কিছুক্ষণ তাকিয়ে থাকার পরে আমি আমার অতীতের পথ খুঁজে পাচ্ছি না।
প্রশ্নগুলি হ'ল এমন একটি সমাধান যা ভাল পারফরম্যান্স দেবে এবং আশা করি যে ভবিষ্যতের বিকাশকারীদের পক্ষে আমি কখনও শুনিনি এমন কিছু অস্পষ্ট শব্দ ফিল্টার করতে ব্যর্থ হওয়ার জন্য বরখাস্ত হওয়ার পরে তা বজায় রাখা উচিত?