का उपयोग कर मेरे पास एक MySQL तालिका है जहां लोग अपना नाम और अपनी रुचियां जोड़ते हैं। मैं कुछ प्रकार के शब्द मिलान का उपयोग करना चाहता हूं जो कि 100% मैच या एक करीबी मैच पाता है। मैंने लेवेनशेटिन दूरी के बारे में सुना लेकिन मुझे कोई सार नहीं है कि यह मेरी मेज के माध्यम से कैसे साइकिल बनायेगा।मिलान खोज शब्द सटीकता संभवतः लेवेनशेटिन दूरी
$input = $_POST["interest"];
$result = mysql_query("SELECT interest_desc FROM interests");
कुछ Googling हो गया और इस बात
function closest($seed, $haystack){
$shortest = -1;
foreach ($haystack as $word){
$lev = levenshtein($seed, $word);
if ($lev == 0) {
$closest = $word; $shortest = 0; break;
}
if ($lev <= $shortest || $shortest < 0) {
$closest = $word; $shortest = $lev;
}
}
return $closest;
}
$array = mysql_fetch_row($result);
$closestmatch = closest($input,$array);
echo $closetmatch;
क्या आप वाकई PHP में ऐसा करना चाहते हैं? यदि आप मैचों (या करीबी मैचों) के लिए खोज करना चाहते हैं तो यह कुछ ऐसा है जो डीबी अंत में सही ढंग से संभाला जाता है। कृपया हमें बताएं। – rdlowrey
@rdlowery के रूप में कहता है, आप संभवतः MySQL की ज़िम्मेदारी पारित करने से बेहतर हैं - http://stackoverflow.com/questions/634995/implementation-of-levenshtein-distance-for-mysql-fuzzy-search और पढ़ने के लिए पढ़ें एक समाधान के लिए http://www.artfulsoftware.com/infotree/queries.php#552 ... – HorusKol