Mysql veritabanında FullText Index ile arama yapmak |
||||||||||||||||
Mysql veritabanında FullText Index ile arama yapmanın birkaç avantajı var; biri performans diğeri de
ayıraclar ile detaylı arama yapabilmek.Detaylara geçelim: Bildiğimiz veri indexlemenin bir başka çeşidi olan Fulltext index sayesinde LIKE komutu ile aramanın yavaşlığından kurtulabiliyoruz. Özellikle yüzbinlerce satırlık veriler arasında LIKE komutuyla kelime araması yapmak büyük performans kaybına yol açar. FullText Index sadece text alanları için kullanılabilir. Ayrıca FullText Index kullanabilmek için tablo formatının MyIsam olması zorunludur ki bu format zaten Mysql veritabanın standart formatıdır. Şimdi Fulltext Index kullancağımız tabloyu oluşturalım: CREATE TABLE IF NOT EXISTS `yazilar` ( `id` int(11) NOT NULL AUTO_INCREMENT, `baslik` varchar(50) COLLATE utf8_bin NOT NULL, `yazi` text COLLATE utf8_bin NOT NULL, PRIMARY KEY (`id`), FULLTEXT KEY `baslik` (`baslik`,`yazi`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;Yukarıdaki yazilar tablosunda html kodu içermeyen yazilarin olduğunu varsayarak (varsa bunun için ayrı tablo oluşturmamız ve saf metni girmek gerekiyor) arama yapalım: SELECT * FROM `yazilar` WHERE MATCH(baslik,yazi) AGAINST (`aranan_kelime` IN BOOLEAN MODE);MATCH parantezleri arasına aranacak FullText indexli sütünları yazıyoruz ve AGAINST parantezlerine sırasıyla aranan kelimeyi ve birden çok sonuç döndürebilmesini sağlayan BOOLEN MODE komutunu yazıyoruz. Sorguyu çalıştırdığımızda baslik ve yazi sütunlarında bu şekilde FullText arama yapabiliyoruz. AGAINST komutunu ile aşağıdaki ayıraçları kullanarak googledakine benzer bir şekilde arama yabiliriz.
Not: MySql FullText Index kullanılan sütunlarda en az 4 karakterli olanları indexler. Bu yüzden 4'den az karakterli kelimeler için aramalar boş döner. Bunu Mysql veritabanında aşağıdaki komutla değiştirebilirsiniz: SET GLOBAL ft_min_word_len= 4; -- 4 yerine istediğiniz değeri yazabilirsiniz SET GLOBAL ft_max_word_len= 64; |
||||||||||||||||
|
||||||||||||||||
|
May 2013 (1)
July 2010 (1)
April 2010 (4)
March 2010 (1)
February 2010 (3)
December 2009 (2)
November 2009 (1)
October 2009 (4)
September 2009 (16)
August 2009 (21)
July 2009 (4)
July 2010 (1)
April 2010 (4)
March 2010 (1)
February 2010 (3)
December 2009 (2)
November 2009 (1)
October 2009 (4)
September 2009 (16)
August 2009 (21)
July 2009 (4)
FireFox User Agent Swi ..
İş ilanı (Flash ve AS3 ..
Jquery ile dinamik res ..
PHP Pear MDB2 modülü i ..
PHP ve Jquery ile Goog ..
İlk görev yerim ;)
Apache URL Rewriting v ..
Mysql View Kullanımı
PHP ile Regular Expres ..
Mysql veritabanında St ..
İş ilanı (Flash ve AS3 ..
Jquery ile dinamik res ..
PHP Pear MDB2 modülü i ..
PHP ve Jquery ile Goog ..
İlk görev yerim ;)
Apache URL Rewriting v ..
Mysql View Kullanımı
PHP ile Regular Expres ..
Mysql veritabanında St ..
Etiketler
| Ado.net | Ajax | Ansi | Asp.net | Delete | Entity-data-model | Galeri | İlişkisel-veritabanı | İnsert | Json | Linq | Mdb2 | Mysql | Normal-formlar | Normalizasyon | Paket | Php | Prepare | Select | Sorgu | Sunucu | Sunucu-kontrollleri | Tasarım | Türkçe-karakter | Update-panel | Utf | Veritabanı | Veritabanı-işlemleri |arama
Loading
sosyal




