Şimdi yazdığım sistemde karşı taraftan gelen metin veritabanındaki en benzeyen ile eşlenecek.
Google'da did you mean var onun gibi bişi benim aradığım.
Birkaç sistem düşündüm aklımda ama tam olmuyor mesela wildcard
olarak ekleyebiliyoruz mysqlden SIMILAR TO kullandığımızda
ama bana bu değilde googledaki gibi lazım misal bi cümle yazdı
cümleye en çok benzeyen veriyi çekmesi gerek?
Hangi yolla yapmamı önerirsiniz gerek mysql gerekse php yönünden ?
Benzerlik olayı
1
●520
- 07-01-2008, 16:53:47Üyeliği durduruldu
- 07-01-2008, 17:06:00Üyeliği durdurulduSanırsam kendi aradığımı kendim buldum

Sphider'da olduğu aklıma geldi incelediğimde veritabanındaki
kelime listesinden yakın olanları çıkarma mantıklıymış. Bu mantık
gayet işimi görür tabi daha iyisini yada kolayı varsa yazarsa sevinirim
if ((count($result_array_full) == 0 || $possible_to_find == 0) && $did_you_mean_enabled == 1) { reset ($searchstr['+']); foreach ($searchstr['+'] as $word) { $word = addslashes($word); $result = mysql_query("select keyword from ".$mysql_table_prefix."keywords where soundex(keyword) = soundex('$word')"); $max_distance = 100; $near_word =""; while ($row=mysql_fetch_row($result)) { $distance = levenshtein($row[0], $word); if ($distance < $max_distance && $distance <4) { $max_distance = $distance; $near_word = $row[0]; } } if ($near_word != "" && $word != $near_word) { $near_words[$word] = $near_word; } } $res['did_you_mean'] = $near_words; return $res; }ve
if (isset($result['did_you_mean'])) { $did_you_mean_b=$query; $did_you_mean=$query; while (list($key, $val) = each($result['did_you_mean'])) { if ($key != $val) { $did_you_mean_b = str_replace($key, "<b>$val</b>", $did_you_mean_b); $did_you_mean = str_replace($key, "$val", $did_you_mean); } } }www.sphider.eu burdan da scripti bulup isteyen inceleyebilir
