Php Levenshtein Fonksiyonu Yardımı
-
Arkadaşlar arama motoruma kendi çapında did you mean şeklinde kısa bir şey eklemek istiyorum levenshtein fonksiyonu ile.
ama işin içine mysql den tarama girince işin içinden çıkamadım.
Daha doğrusu çıksamda bir anda sonsuz döngüye giriyor olay kitleniyor sistem.
Ne gibi bir hata olabilir yada örnek uygulama var mı gösterebileceğiniz
if (strlen($arama_kutusundan_gelen_veri)>=5) {
iLLuMiNaTi tarafından 10/Haz/16 19:52 tarihinde düzenlenmiştir
echo "<div class=\"container\">
<div class=\"row\">
<div class=\"well well-sm text-center\">Yada Aradığınız Bunlardan Biri Olabilir Mi ?</div>
</div> <!-- row u kapatan div -->
</div><!-- container i kapatan div -->";
$arama_kutusundan_gelen_veri = mysql_real_escape_string(ingilizceye_cevir(@$_POST['arama_kutusu']));
$kelimeler = mysql_query("select * from airports where name like '%" . $arama_kutusundan_gelen_veri . "%'");
$kelimeler_parcala = mysql_fetch_array($kelimeler);
while($arama_kutusundan_gelen_veri) {
$lev = levenshtein($arama_kutusundan_gelen_veri, $kelimeler_parcala['name']);
if($lev >= 1 && $lev < 5){
echo $lev;
}
}
} -
Ben soyle kullanmistim, sozel olarak anlatacagim.
Oncelikle aramalar onbinlerce urunun tutuldugu bir veritabaninda (mysql) yapiliyordu, simdi her yanlis sorgu icin tum veri tabanini sorgulayip kasmanin mantigi yok diye oncelikle istatistik amacli insanlarin neyi ne kadar aradiklarini kayit etmeye baslamistim. Ardindan bu fonksiyonu istatistiklerde tuttugum kayitlarda dondurmeye basladim.
Isin soyle bir sikinti tarafi var, hic aranmamis bir urunu yanlis yazan kisi did you mean de de bir sey goremiyordu. Sistemi yormamayi dusundugum icin pek son kullaniciyi takmamistim.
-
Sabahçılar için bir up
-
Neden levenshtein? Soundex'lerden biri işinizi görmüyor mu?
http://www.borakasmer.com/did-you-mean-soundex-agorithm/
Ayrıca üstüne basa basa: "ARTIK mysql_ İLE BAŞLAYAN FONKSİYONLARI KULLANMAYIN, PARAMETRESİZ SORGU YAPMAYIN!".
