हमने नाम मिलान के लिए एक वेब आधारित एप्लिकेशन विकसित किया है। यह नामों को भागों में तोड़कर संचालित होता है और प्रत्येक भाग के साउंडेक्स मान को एक डेटाबेस में संग्रहीत किया जाता है। Levenshtein दूरी मीट्रिक किसी दिए गए नाम के खिलाफ ध्वनि का प्रतिशत मिलान के साथ ही वर्तनी लागू करने के लिए प्रयोग किया जाता है।
रनटाइम के दौरान, हम सभी रिकॉर्ड्स को मेमोरी में लोड करते हैं और सभी साउंडेक्स वैल्यूज़ और सभी नामों के सभी हिस्सों की स्पेलिंग के लिए लेवेन्शिन दूरी लागू करते हैं।
यह पहली बार में ठीक काम कर रहा था क्योंकि अधिकतम 20 हजार नाम थे, लेकिन अब हमारे एक ग्राहक के 30 मिलियन नाम हैं। प्रत्येक अनुरोध के लिए स्मृति में इस विशाल सूची को लोड करना और इस प्रकार का मिलान लागू करना एक दयनीय दृष्टिकोण है, बहुत सारी स्मृति और निष्पादन समय का उपयोग करना।
हम साउंड और स्पेलिंग के प्रतिशत मिलान के साथ निकट भविष्य में 30 मिलियन रिकॉर्ड या अधिक के डेटाबेस को खोजने के लिए सुझावों की तलाश कर रहे हैं।
कोर फंक्शनलिटी
अंतिम उपयोगकर्ता मिलान और न्यूनतम प्रतिशत होने के लिए नाम दर्ज करता है। हम डेटाबेस में उन सभी नामों को दिखाने वाले हैं जिनके लिए नाम का कोई भी हिस्सा दिए गए नाम के किसी भी हिस्से के साथ दिए गए प्रतिशत तक मेल खाता है। पूर्ण नाम मिलान के लिए आवश्यक नहीं है, यदि प्रतिशत तक मेल खाता है तो कोई भी भाग सफल नहीं होता है। उदाहरण के लिए।
Given Name: Helen Hunt
Name in DB: Holly Hunter
दोनों नामों के दोनों भाग बिल्कुल मेल नहीं खा रहे हैं, लेकिन कुछ हद तक, हमें 80% मान लेते हैं, इसलिए यदि उपयोगकर्ता 80% दर्ज करता है, तो DB में नाम को मिलान नाम के रूप में दिखाया जाना चाहिए।