Ana Sayfa » *nix » MySQL Full-Text Search Minimum Length Limitini Değiştirmek

MySQL Full-Text Search Minimum Length Limitini Değiştirmek


BerbatKötüİdare EderGüzelHarika (Toplam 1 oy. 5 puan üzerinden ortalama 5.00 || Oy vererek siz de katkıda bulunabilirsiniz.)
Loading ... Loading ...

MySQL’in fulltext özelliği default olarak 4 ya da daha çok karakterden oluşan kelimeleri indexliyor. Bu durum full-text aramalarında 3 harften oluşan kelimeler için herhangi bir sonuç dönmemesine neden olabiliyor. Örnek olarak  ”ssh” ya da “php” gibi 3 harften oluşan sorgular gönderdiğiniz zaman herhangi bir sonuç alamayabiliyorsunuz.

Bu durumun önüne geçmek üzere MyISAM tablolar için kullanılabilecek  ”ft_min_word_len”  isimli bir sistem değişken mevcut.  my.cnf dosyasına eklenen bu değişken ile fulltext’e minimum kaç karakterin dahil edileceğini söyleyebilyorsunuz. Örnek olarak bu değeri 3 olarak set etmek ve varolan bir index’i bu değişikliğe göre rebuild etmek için aşağıdaki adımları izleyebilirsiniz:

my.cnf dosyasını editleyin. (Bu dosya genelde /etc altında bulunmaktadır.)

Komut
# vi /etc/my.cnf

Dosyanın [mysqld] isimli bölümüne aşağıdaki değişkeni ekleyin:

Çıktı
[mysqld]
ft_min_word_len=3

Bu işlemden sonra MySQL servisinin yeniden başlatılması gerekiyor:

Komut
# /etc/init.d/mysqld restart

Şimdi min length değerini kontrol ederseniz 3 olduğunu görebilirsiniz:

Çıktı
mysql> show variables like 'ft_min_word_len';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| ft_min_word_len | 3     |
+-----------------+-------+
1 row in set (0.00 sec)

Bu şekilde artık yeni kayıtlar için index minimum 3 karakter olacak şekilde düzenlenecektir ancak eski kayıtların da güncellenmesi için index’in rebuild edilmesi gerekmektedir. Bu işin en kolay yolu ise ilgili tablo üzerinde quick repair işlemi yapmaktır.

Örnek olarak testdb isimli database’in deneme isimli tablosunda index olduğunu düşünürsek rebuild işlemi için aşağıdaki komutu kullanabiliriz:

Çıktı
mysql> use testdb;
mysql> REPAIR TABLE deneme QUICK;

Bu şekilde işlem tamamlanmış oluyor.
Daha detaylı bilgi için aşağıdaki linke göz atabilirsiniz:
http://dev.mysql.com/doc/refman/5.6/en/fulltext-fine-tuning.html

Etiketler: ,

Kategoriler: *nix,Mysql |

BU YAZILAR DA İLGİNİZİ ÇEKEBİLİR


- Mysql Replikasyon Yapılandırması
- Mysql Server İçin Root Şifresi Tanımlamak
- Mysql Data Dizininin Yerinin Değiştirilmesi
- MySQL: InnoDB Database Ebatının Küçültülmesi – Shrink ibdata1
- Komut Satırından MySQL Kullanıcısı Oluşturmak

YORUMLAR


Henuz yorum yapilmamis.

Yorumda bulunun.