2010-02-23 23 views
7

Şu anda web sitem için temel bir tam metin araması geliştirmeye çalışıyorum ve "ilgili" gibi bazı kelimelerin MySQL tam metin aramaları için şifreler olarak listelendiğini fark ettim. Bu, şu anda beni çok fazla rahatsız etmiyor, çünkü belirli bir haberleri arayan kişiler mutlaka "ilgili" kelimesini kullanarak arama yapmaz (ama kesinlikle herkes için konuşamıyorum!). Ancak, burada birisinin bir stopwords listesine sahip olmanın gerekçesi hakkında beni aydınlatabileceğini umuyordum. Teşekkürler!MySQL Tam Metin URL'leri Rasyonel

Açıklama için: Tüm tablolarım için MyIsam kullanıyorum. Durmalar, MySQL'in indekslemeyeceği kelimelerdir (herhangi bir tam metin dizini için). Bu soruya yapılan bir yorumda da belirtildiği gibi, herhangi bir açıklama yapılmaksızın, eksiksiz bir şifre listesi bulunmaktadır. "Seçtikleri" kelimelerinin ardında bir mantık olup olmadığını bilmek isterdim.

+0

Aramanız için mySQL kullanmak ister misiniz? Başka bir şey uygulamaktan daha mutlu olmaz mıydın? – Layke

+0

@Laykes Farklı bir çerçeve kullanarak daha mutlu olabilirim. Gelişmekte olduğum sunucunun kontrolünde olmadığım için şu anda çok muhafazakar bir şekilde gelişiyorum. Ayrıca sitem için çok gelişmiş bir aramaya da ihtiyacım yok. Her iki durumda da, hala stopword listesi hakkında merak ediyorum. –

+1

garip, Ben asla stopwords hakkında bilmiyordum - burada tam bir liste ama açıklama olmadan: http://dev.mysql.com/doc/refman/5.1/en/fulltext-stopwords.html –

cevap

8

Durma sözcükleri, İngilizce dilinde sadece genel kelimelerdir. Çoğu durumda, arama sonuçlarınız daha alakalı olacaktır ve bu kelimeleri endekslemiyorsanız, endeksleriniz daha küçük ve daha hızlı olacaktır.

Durdurma sözcüğü listesini ft_stopword_file değişkenini kullanarak düzenleyebilirsiniz (veya ihtiyaçlarınızı daha iyi karşılayabiliyorsa, tüm sözcükleri ft_min_word_len'den daha uzun veya daha uzun bir dizine endekslemek için '' olarak ayarlayabilirsiniz). Aynı sebepten dolayı var olan ft_min_word_len değişkenini kullanarak minimum endeksli kelime uzunluğunu da değiştirebilirsiniz.

+0

İçgörü için teşekkürler! –

İlgili konular