bi kaç ay önce bir tercüman arkadaşla bir proje yapalım dedik benim bir sitenin içeriğine ayıracak zamanım yok ama projeler arası değişik kod görmek kafamı dinlendiriyor. sonra karar verdik bir sözlük yapalım sonuçda zargan seslisozluk falan var benim bildiğim çok yok. dedim bende içerik gireceksen yapalım. sonra bana bi mdb yolladı o başlangıç noktamız oldu access her ne kadar kıl da olsa 2 ay güzel çalışdı artık yeni özelliklere ihtiyacımız vardı misal başlıkda belirtildiği gibi yazım hatası falan yapıldığında ses olarak yakın olan kelimeleri tavsiye etmek gibi.
bunu fatih ilk söyledi ben bi korkdum sonuçda daha önce hiç düşünmediğim bilmediğim bi alandı. bu konu aslında spell checkerların içinde geçermiş. ünlü bir algorithma metaphone önce bunu nasıl uygulasam diye bakarken birde ne görim meğersem eski dost mysqlde bu algoritmayla olmasada bu işi gören bir fonksiyon var imiş soundex deneme yapmam gerekdi olaydan pek bişey anlamadım ama anladığım şuydu bu işi db ye yıkarsam karlı çıkarım. bu çok klasikdir eğer herhangi bir işlemi db ye yıkarsanız daha hızlı çözersiniz ve çalışır.
mdb yi aldım mysql e sokacam mysql migration tool var biraz nazlandı utf8 le bi şekil gömçürdüm sonuçda db vardı elimde artık çalışmalıydı ama bir karakter problemi varki kol kadar saçma sapan işler dönüo dedim html den kaynaklanıyordur bu cins karakteri browser gösteremiyor ama bilakis mesele tamamen mysql migration tool un dandikliğiymiş. tabii bunu çözmem saatler aldı hostinge db yi kopyalamak ayrı bir dert shared hosting de yani ucuz işde mysql direk bağlantı vermiolar tabii güvenlik amaçlı. phpmyadmin de 2mb dan büyük dosya almam diye ayarlanmışki sadece sql dosyasıda alabilio epey uzun sürdü velhasılı sonuç. navicat sağlam bir araç aynı şekil utf8 alt yapıya onla insert yaptığımda karakter problemleri çözüldü.
soundex konusuna gelince şu benzeri bir sql istediğimizi yakalıyor.
select kelime from kelimeler where soundex(‘aranan ve bulunamamış kelime’)=soundex(kelime)
ses olarak db de aranan kelimeye yakın olan bütün kelimeleri diziyor.
örnek sayfanın ortasına dizio yiğit mysql 🙂
bu işlem diğer dblerdede mevcut sanırım bi ara onlarıda test etsem neşeli olur. yoksa bu garip fonksiyonları kullanacak yer yok.