[Senna-dev 655] DORで数千単語を検索すると検索結果が0件になる

Back to archive index

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



Senna-dev メーリングリストの案内
Back to archive index