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

Back to archive index

yukio ishi ishi.****@gmail*****
2007年 8月 13日 (月) 12:11:35 JST


こんにちは、石野です。

senna.log には以下のように出力されました。
メモリ不足だとすると、1件のマッチにつきどの程度のメモリを使用するのでしょうか?
ちなみにメモリ1GBのPCを使用して試しているのですが、その場合は何件程度のマッチまで
耐えられるか把握できると助かります。

・1000単語のOR(12件ヒット)

08/13:10:41:44.162061|i| ft_init_boolean_search => sen_query_open: str='*DOR
草水 草摺 草瀬 草生 草生さ 草生し 草生しゃ ... 略
08/13:10:41:44.162285|d| ft_init_boolean_search => sen_query_rest:
q=0x8a24e28, rest=0x41fe4f8c
08/13:10:41:44.162298|w| ft_init_boolean_search: too long query. rest(草津川
草津線 草津総合病院 草津電機 草津東 草津峠 ... 略
8/13:10:41:44.162396|d| ft_init_boolean_search => sen_records_open
08/13:10:41:44.162410|i| ft_init_boolean_search => sen_query_exec:
i=0x89db780, q=0x8a24e28, r=0x8a175d8
08/13:10:41:44.162423|d| mode=0 option=0 w=5 o=0
08/13:10:41:44.162526|i| n=1 (草水)
08/13:10:41:44.162573|d| mode=0 option=0 w=5 o=0
08/13:10:41:44.162606|i| n=1 (草摺)
08/13:10:41:44.162863|d| mode=0 option=0 w=5 o=0
08/13:10:41:44.162881|d| mode=0 option=0 w=5 o=0
08/13:10:41:44.162897|d| mode=0 option=0 w=5 o=0
... 略
08/13:10:41:44.163284|i| n=1 (草地)
08/13:10:41:44.163296|d| mode=0 option=0 w=5 o=0
08/13:10:41:44.163313|i| n=1 (草地)
08/13:10:41:44.163325|d| mode=0 option=0 w=5 o=0
08/13:10:41:44.163341|d| mode=0 option=0 w=5 o=0
08/13:10:41:44.163372|i| n=1 (草津)
08/13:10:41:44.163386|d| mode=0 option=0 w=5 o=0
08/13:10:41:44.163403|i| n=1 (草津)
08/13:10:41:44.163416|d| mode=0 option=0 w=5 o=0
08/13:10:41:44.163456|i| n=2 (草津港)
08/13:10:41:44.163470|d| mode=0 option=0 w=5 o=0
08/13:10:41:44.163500|i| hits(exact)=12

・5000単語のOR(0件ヒット)

08/13:10:43:26.161732|i| ft_init_nlq_search => sen_index_sel
index=0x89db780, string='*DOR 草水 草摺 草瀬 草生 草生さ ... 略
08/13:10:43:26.162447|i| sen_index_sel > (*DOR 草水 草摺 草瀬 草生 草生さ 草生し 草生しゃ 草生す
草生せ 草生せ 草生そ ... 略
08/13:10:43:26.163559|i| exact: 0
08/13:10:43:26.163964|i| unsplit: 0
08/13:10:43:26.164383|i| partial: 0
08/13:10:43:26.164396|i| hits=0

・10000単語のOR(0件ヒット)

08/13:11:12:25.898474|i| ft_init_nlq_search => sen_index_sel
index=0x89db780, string='*DOR 草水 草摺 草瀬 草生 草生さ ... 略
08/13:11:12:25.899846|i| sen_index_sel > (*DOR 草水 草摺 草瀬 草生 草生さ 草生し 草生しゃ 草生す
草生せ 草生せ 草生そ ... 略
08/13:11:12:25.901942|i| exact: 0
08/13:11:12:25.902747|i| unsplit: 0
08/13:11:12:25.903599|i| partial: 0
08/13:11:12:25.903614|i| hits=0


07/08/10 に Tasuku SUENAGA <a****@razil*****> さんは書きました:
>
> 末永です。
> こんにちは。
>
> 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*****>
>
> _______________________________________________
> Senna-dev mailing list
> Senna****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/senna-dev
>



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