Tasuku SUENAGA
a****@razil*****
2007年 8月 10日 (金) 12:40:59 JST
末永です。 こんにちは。 Sennaのログはどのように出力されていますでしょうか。 おそらくメモリ不足だと思われます… ランダム値の場合にはマッチする結果が存在しないため、 結果が増えずメモリが不足しないものと予想します。 yukio ishi さんは書きました: > こんにちは、石野です。お世話になります。 > > 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 --- Tasuku SUENAGA <a****@razil*****>