MuminCelik.Com - (SEO) Arama Motoru Optimizasyonu Uzmani, Website Developer, Designer
Click here to go to english version of mumincelik.com Turkce versiyonu icin tiklayin
Email ile pazarlama, Affiliates Alisveris Sepeti Entegrasyonu, Modul, Kupon, Ozel Firsatlar Gelistirici SEO Arama Motoru Doktoru Alisveris Sepeti Entegrasyonu, Modul, Kupon, Ozel Firsatlar Gelistirici CMS Icerik Yonetim Sistemleri, Yonetim Paneli, Raporlama ve Analiz Araclari Alisveris Sepeti Entegrasyonu, Modul, Kupon, Ozel Firsatlar Gelistirici Alisveris Sepeti Entegrasyonu, Modul, Kupon, Ozel Firsatlar Gelistirici PHP, MySQL, XML, AJAX, JavaScript, CSS uzmani PHP, MySQL, XML, AJAX, JavaScript, CSS uzmani SEO Arama Motoru Doktoru PHP, MySQL, XML, AJAX, JavaScript, CSS uzmani SEO Arama Motoru Doktoru Online Odeme(Paypal, Kredi Karti) ve Kargo Sistemleri Online Odeme(Paypal, Kredi Karti) ve Kargo Sistemleri
RESMI KISISEL ANA SAYFA
Website Designer, Developer, Tasarimci, Gelistirici Website Designer, Developer, Tasarimci, Gelistirici PHP, MySQL, XML, AJAX, JavaScript, CSS uzmani
Web Proje Yoneticisi, Danismani, Uzmani
Online Odeme(Paypal, Kredi Karti) ve Kargo Sistemleri
RESMI ANA SAYFA
CV
PROJELER
REFERANSLAR
Arama motoru optimizasyon uzmani,danismani CMS Icerik Yonetim Sistemleri, Yonetim Paneli, Raporlama ve Analiz Araclari CMS Icerik Yonetim Sistemleri, Yonetim Paneli, Raporlama ve Analiz Araclari Email ile pazarlama, Affiliates
DOKUMANLAR
Online Odeme(Paypal, Kredi Karti) ve Kargo Sistemleri
LOGO TASARIM
The Job I Want

- Everyday, I woke up and I can’t wait to get here
- It is not a choice between fun and work. It is a choice for fun and work.
- what I work for should not be heavy, it should be my job.
Arama motoru optimizasyon uzmani,danismani CMS Icerik Yonetim Sistemleri, Yonetim Paneli, Raporlama ve Analiz Araclari
Full Text Search

Günümüzde bir çok kişi databaselerinde arama yapmak için LIKE kullanıyor. Gerçekten gayet iyi sonuç vermesine rağmen MySQL'in bize sağladığı full-text search sayesinde daha iyi sonuclar elde etmek mümkün. Fakat full-text search özelliğini kullanabilmek için bazı kısıtlamalara dikkat etmemiz gerekmektedir.

 

İlk olarak genel de kullandığımız databasede tablo yapısı InnoDB'dir. InnoDB, UPDATE, INSERT ve DELETE işlemlerinde oldukça verimlidir fakat full-text search özelliğini kullanabilmek için tablo yapımızın MyISAM olması gerekir. MyISAM tablolarının en önemli özelliği SELECT sorgulamarında daha hızlı ve verimli olmasıdır.

 

Bunun yanında full-text search özelliği sadece CHAR, VARCHAR ve TEXT yapılı alanlarda kullanılabilir ve kullanılacak alanların Full-Text Serach Index olarak tanımlanmaları gerekir.

 

Diğer dikkat etmemiz gereken de full-text search kullandığımızda aranan kelimenin mevcut tablodaki bilgilerin %50sinden daha azında bulunması gerekir. Örneğin 100 tane kaydımız varsa ve aradığımız kelime bu 100 kayıdın 51inde bulunuyorsa sonuç olarak her hangi birşey almayız.

 

Gördüğümüz gibi full*text seach kullanabilmek için bazı sınırlamalara dikkat etmemiz gerekli. Bu yüzden full-text search'ü nasıl kullanabileceğimizi iyi bilmemiz gerekir. En iyi yol mevcut database tablolarımızı InnoDB olarak oluşturmak ve arama dışındaki tüm işlemleri bu tablolar üzerinden yapmaktır. Arama işlemi için özel olarak MyISAM tabloları oluşturup bunları günün belli zamanlarında güncellememiz gerekir.

 

Full-Text search için  MATCH () AGAINST() yapısını sorgu içinde kullanmamız gerekir.

 

 

SELECT * FROM tabloWHERE MATCH(alanAdı) AGAINST ('kelime')

 

Bunun dışında muhtamel girilecek virgül yada boşluk karakterleri için birşey yapmamıza gerek yokturç Full-Text Search bunları kendisi bizim adımıza halletmektedir. Dahası aranan kelimenin bulunduğu verideki ilgi oranınıda bize vermektedir ve buna göre sıralamaktadır. Örneğin ara kelimesini aramayı denedik ve ilk verimizde 3 adet ikinci verimizde 5 adet ara kelimesi bulunmakta. Arama sonucunda ikinci verimiz ilk sırada, ilk verimizde ikinci sırada karşımıza çıkıcaktır.

 

Ayrıca ilgi oranını aşağıdaki gibi elde etmek mümkün.

 

SELECT MATCH(alanAdı) AGAINST ('kelime') as ilgi FROM tablo WHERE MATCH(alanAdı) AGAINST('kelime').

 

Gördüğünüz gibi Full-Text çok kullanışlı fakat nasıl kullanılması gerektiği iyi bilinmesi gerekir. Bir örnek ile açıklamak gerekirse. Örneğin bir blog sitemiz var ve içerik olarak yazdığımız bloglar, yapılan yorumlar, kategoriler ve istatislikler bulunmakta. Bütün tablolarımız InnoDB yapısında olup tüm işlemler bunların üzerinden gerçekleştirilecektir. Bunlar içinden blog başlığı, içeriği ve yorumlarda arama yapmak istediğimizde bu alanlar için özel MyISAM tablosu oluşturup bu alanları Full-Text Search Index olarak tanımlıyoruz. Eğer phpmyadmin kullanıyorsanız alan oluştururken en sonra T harfi ile belirtilen Full-Text Search Index seçeneğini göreceksinizdir. Daha sonra bir Cron Job (Zamanlandırılmış Server İşlemi) tanımlayarak mevcut tablolarımızdaki verilerin MyISAM tablolarına günün belli bir saatinde genel de sitenin en az yoğun olduğu gece sabaha doğru 3 gibi aktarılması sağlanır. Böylece sonuçlarda son günün verileri görünmeyecektir.

 

Eğer LIKE kullanarak arama yapmış olsaydınız virgül ve boşlukları ayırmak zorunda kalacak dahası cıkan sonuçları sıralamak içinde özel bir fonksiyon yazmanız gerekecekti. Gördüğünüz gibi Full-Text Search hepsini bizim adımıza tek bir sorgu ile hallediyor.

 

Full Text Search ile ilgili soru sormak icin bounmis.com adresini ziyaret ediniz.

Aralik 01, 2007 03:21AM MST
Web Proje Yoneticisi, Danismani, Uzmani Website Designer, Developer, Tasarimci, Gelistirici
Email ile pazarlama, Affiliates
Arama motoru optimizasyon uzmani,danismani SEO Arama Motoru Doktoru Arama motoru optimizasyon uzmani,danismani
Online Odeme(Paypal, Kredi Karti) ve Kargo Sistemleri Web Proje Yoneticisi, Danismani, Uzmani