2009-10-18 6 views
10

Tam metin aramamı (boolean modda) üç harf veya daha az sözcük almak için çalışıyorum.MySQL tam metin, üç veya daha az harf içeren kelimeler için arama yapın

Şu anda "NBA" gibi bir şey ararsam, hiçbir sonuç alamıyorum.

Ancak, arama terimine "*" numaralı wildcard operatörünü eklerseniz sonuç alırım.

Ayrıca, üç kelime limitini my.ini'da kaldırabildiğini de okudum, fakat bunun daha iyi bir yolu olup olmadığını merak ediyorum.

cevap

16

Kılavuzun Bu bölümde, ilgi olabilir: 11.8.6. Fine-Tuning MySQL Full-Text Search (bunun bir kısmı alıntı):

minimum ve ft_min_word_len ve ft_max_word_len ile tanımlanır dizine için kelime maksimum uzunlukları sistem değişkenleri. varsayılan minimum değeri dört karakterdir; varsayılan maksimum sürümüne bağlıdır. değerini değiştirirseniz, FULLTEXT dizinlerinizi yeniden oluşturmanız gerekir.

[mysqld] 
ft_min_word_len=3 

Sonra sunucu ve yeniden başlatmanız gerekir: Üç karakterlik kelime aranabilir olmak istiyorum Örneğin, bir seçenek dosyasında aşağıdaki satırları koyarak ft_min_word_len değişkeni ayarlayabilirsiniz
FULLTEXT indekslerinizi yeniden oluşturun.

Zaten aynı okunan

+0

Teşekkür Pascal, (Ben ;-) kopyala-yapıştır vermedi detaylı bilgi için, o sayfayı okumalısınız), sahip olduğum düşüncesi yapmaktır Bu, arama ifadesinin uzunluğunu kontrol eden ve joker * değiştiricisini ekleyenden daha iyi olan ft_min_word_len 'a göre daha iyi bir yöntem olup olmadığını merak eder. –

+0

Oh, üzgünüm anlaşıldı ;; Bununla ilgili pek bir fikrim yok ... iyi bir performans olsa da emin değilim; bir sidenote gibi: solr veya sfenks gibi bazı dış indeksleme/arama motorunu kullanma hakkında ne düşünüyorsunuz? –

+0

teşekkürler, Sfenks duydum ama kafamın etrafına sarmak için zamanım olmadı. –