yukio ishi
ishi.****@gmail*****
2007年 8月 8日 (水) 17:43:00 JST
こんにちは、石野です。お世話になります。 Senna+mysql+tritonnで、medab辞書の単語をDORの後に連結して、DBに蓄積してあったデータを検索しているのですが、 mysql> SELECT count(*) FROM table_name WHERE MATCH(column_name) AGAINST('*DOR 単語1 単語2 単語3 ... 略 ' in boolean mode); この連結する単語数を多くしていくと、単語1などがテーブルに存在していても検索結果が0件になってしまいます。 mecab辞書で試した場合は、 1000単語のOR:12件ヒット 5000単語のOR:0件 10000単語のOR:0件 という結果でした。 文字列長に制限があるのかと思い、以下のように試してみたところ mysql> SELECT count(*) FROM table_name WHERE MATCH(column_name) AGAINST('*DOR 単語1 単語2 ランダム値 ランダム値 ... 略 ' in boolean mode); こちらは10000単語(文字列長は先ほどより長め)でも正常にヒットしました。 ご存知の方いらっしゃいましたらご教授願えませんでしょうか。どうぞよろしくお願い致します。 ■動作環境 Linux kernel 2.4.20 mysql-4.1.22 senna-1.0.4 tritonn-1.0.2.mysql-4.1.22.senna-1.0.4 テーブルはNGRAMで作成 -- ishi.yukio [at] gmail.com