2012-03-28 14 views
3
SELECT * FROM mytable WHERE match(fieldname) against('spa') 

このクエリが結果を返さない理由はわかりません。 スパでは少なくとも10行が見つかります。スパはキーワード/ストップワードではありませんか?MYSQLマッチ例が機能しません。 「スパ」はストップワードですか?

+2

分は必要ありません。マッチするための4文字の単語? – matino

+0

'fieldname'に全文索引がありますか?大文字と小文字は区別されますか? – DaveRandom

+0

ありがとうございます。それは理にかなっていますが、システム変数をリセットする代わりに、特定の3文字のキーワードにいくつかの例外を私のコードに追加します。 – Harry

答えて

5

索引付けされる単語の最小長と最大長は、システム変数ft_min_word_lenとft_max_word_lenによって定義されます。 デフォルトの最小値は4文字です;デフォルトの最大値はバージョンに依存します。いずれかの値を変更する場合は、FULLTEXT索引を再構築する必要があります。あなたは3文字の単語が検索可能にしたい場合たとえば、あなたはオプションファイルに以下の行を入れてft_min_word_len変数を設定することができます。

[mysqld] 
ft_min_word_len=3 

その後、サーバーを再起動し、FULLTEXTインデックスを再構築します。特にこのリストに続く指示のmyisamchkに関する注意に注意してください。

出典:http://dev.mysql.com/doc/refman/5.1/en/fulltext-fine-tuning.html

0

いいえ、スパは、デフォルトのストップワードの一つではないが、私は4にデフォルトを信じてMySQLのフルテキスト検索の最小ワード長がある:ft_min_word_length

0

あり検索の最小文字数は4文字です。しかし、検索機能は、MySQLのフルテキスト検索機能はいくつかのユーザーが調整可能なパラメータを持っている

Fine-Tuning MySQL Full-Text Search

を変更することができると思われます。 にMySQLソース配布がある場合、一部の変更にソースコード が必要になるため、フルテキスト検索の動作をより詳細に制御できます。項2.17。「ソースからのMySQLのインストール」を参照してください。

の有効性を確認するために全文検索が慎重に調整されています。ほとんどの場合、デフォルトの動作を変更すると、実際に の効果が低下する可能性があります。 あなたがしていることを知っていない限り、MySQLソースを変更しないでください。

このセクションで説明するほとんどのフルテキスト変数は、サーバーの起動時に に設定する必要があります。変更するにはサーバーの再起動が必要です。サーバーが稼働している間は変更することはできません。

一部の変数を変更するには、 テーブル内のFULLTEXTインデックスを再構築する必要があります。これを行う手順は、 セクションの後半で説明します。

索引付けされる単語の最小長と最大長は、 システム変数ft_min_word_lenとft_max_word_lenで定義されます。 (セクション 5.1.3、 "サーバシステム変数"を参照してください。)デフォルトの最小値は4文字です。デフォルトの最大値はバージョンに依存します。 のいずれかの値を変更する場合は、FULLTEXT索引を再構築する必要があります。

[mysqld] 
ft_min_word_len=3 

その後、サーバーを再起動し、再構築:あなたは3文字の単語が検索可能にしたい 場合たとえば、あなたは ファイルは、オプションで次の行を入れて ft_min_word_len変数を設定することができます FULLTEXTのインデックス。特にこのリストに続く指示の のmyisamchkに関する注意に注意してください。

関連する問題