मैं एक छोटे PHP/MySQL अनुप्रयोग के लिए अस्पष्ट खोज को लागू करने के लिए देख रहा हूं। विशेष रूप से, मेरे पास लगभग 2400 रिकॉर्ड्स वाला डेटाबेस है (रिकॉर्ड प्रति वर्ष 600 की दर से जोड़ा गया है, इसलिए यह छोटा डेटाबेस है)। ब्याज के तीन क्षेत्र सड़क का पता, अंतिम नाम और तारीख हैं। मैं उन क्षेत्रों में से किसी एक द्वारा खोज करने में सक्षम होना चाहता हूं, और अनिवार्य रूप से वर्तनी/चरित्र त्रुटियों के लिए सहनशीलता है। यानी, "123 मुख्य सड़क" का एक पता "123 मुख्य सेंट", "123 मुख्य सेंट", "123 मियान सेंट", "123 मैन सेंट", "132 मुख्य सेंट" आदि से मेल खाना चाहिए और इसी तरह नाम के लिए भी और तारीख।PHP/MySQL छोटे पैमाने पर अस्पष्ट खोज
मुख्य मुद्दों मैं अन्य इसी तरह के प्रश्नों के उत्तर देते हैं:
- यह हर संभव गलत वर्तनी के लिए समानार्थी शब्द को परिभाषित करना असंभव है, दिनांक और नाम के लिए ऐसा करने भूल जाते हैं।
- लुसीन इत्यादि इतने सीमित खोज डेटा सेट के लिए बहुत भारी वजन लगता है (इसे अधिकतम 5,000 रिकॉर्ड, रिकॉर्ड प्रति 3 फ़ील्ड) कहते हैं।
- सिर्फ वाइल्डकार्ड के साथ कुछ करना संभव वर्तनी त्रुटियों के साथ तार्किक प्रतीत नहीं होता है।
कोई सुझाव? मुझे पता है कि MySQL के साथ मूल रूप से करना संभव नहीं है, लेकिन चूंकि डेटा सेट इतना सीमित है, इसलिए मैं इसे अपेक्षाकृत सरल रखना चाहता हूं ... शायद एक PHP क्लास जो सभी से रिकॉर्ड्स के रिकॉर्ड प्राप्त करता है डीबी, कुछ प्रकार की तुलना एल्गोरिदम का उपयोग करता है, और इसी तरह के रिकॉर्ड की आईडी देता है?
धन्यवाद, जेसन