morit****@razil*****
morit****@razil*****
2009年 9月 7日 (月) 17:21:25 JST
こんにちは、森です。 すみません。。 "*"が付いているクエリのハンドリングに不備があるようです。 直した方がいいですよねぇ・・・。 >>> Kazuhiko さんは書きました: > こんにちは、かずひこです。 > > Tritonnというか、Sennaの検索式の質問な気もしますが、"word*"という検索式 > の意味が"word"とどう異なるのか分かりません。 > * senna-1.1.4 > * tritonn-1.0.12-mysql-5.0.67 > > "*"が付いている、付いていないに関わらず、exactマッチがあればそれだけ返し > て、exactマッチが無ければ、部分一致を試しているように見えます。 > > しかし、 > | ** 単語* > | ある単語から始まる文字列を検索する、という条件を表す。 > というQUERY.JAの記述からは、"word*"の場合は、exactマッチがあろうがなかろ > うが部分一致もしてくれそうに感じます。 > > 以下は、"garra"という語と"garrahan"という語が含まれるテーブルに対する検 > 索の例で、MySQLのクエリとsennaのログを載せておきます。 > > ・"garra"で検索 (exact=1) > mysql> select uid from full_text where MATCH > (`full_text`.`SearchableText`) AGAINST ('garra' in boolean mode) limit 1000; > 1 row in set (0.00 sec) > > |i|3| ft_init_boolean_search => sen_query_open: str='garra', str_len=5, > max_exprs=32 > |d|3| ft_init_boolean_search => sen_query_rest: q=0x24b25e0, rest=0x440c80e8 > |d|3| ft_init_boolean_search => sen_records_open > |i|3| ft_init_boolean_search => sen_query_exec: i=0x2489d40, > q=0x24b25e0, r=0x24b1e50 > |i|3| n=1 (garra) > |i|3| hits(exact)=1 > |d|3| ft_init_boolean_search => sen_query_close: q=0x24b25e0 > |d|3| ft_boolean_reinit_search => sen_records_rewind: records=0x24b1e50 > |d|3| ft_boolean_close_search => sen_records_close: records=0x24b1e50 > > ・"garra*"で検索 (exact=1) > mysql> select uid from full_text where MATCH > (`full_text`.`SearchableText`) AGAINST ('garra*' in boolean mode) limit > 1000; > 1 row in set (0.00 sec) > > |i|3| ft_init_boolean_search => sen_query_open: str='garra*', str_len=6, > max_exprs=32 > |d|3| ft_init_boolean_search => sen_query_rest: q=0x24b25e0, rest=0x440c80e8 > |d|3| ft_init_boolean_search => sen_records_open > |i|3| ft_init_boolean_search => sen_query_exec: i=0x2489d40, > q=0x24b25e0, r=0x24b1e50 > |i|3| n=1 (garra*) > |i|3| hits(exact)=1 > |d|3| ft_init_boolean_search => sen_query_close: q=0x24b25e0 > |d|3| ft_boolean_reinit_search => sen_records_rewind: records=0x24b1e50 > |d|3| ft_boolean_close_search => sen_records_close: records=0x24b1e50 > > ・"garrah"で検索 (exact=0) > mysql> select uid from full_text where MATCH > (`full_text`.`SearchableText`) AGAINST ('garrah' in boolean mode) limit > 1000; > 40 rows in set (0.00 sec) > > |i|3| ft_init_boolean_search => sen_query_open: str='garrah', str_len=6, > max_exprs=32 > |d|3| ft_init_boolean_search => sen_query_rest: q=0x24b25e0, rest=0x440c80e8 > |d|3| ft_init_boolean_search => sen_records_open > |i|3| ft_init_boolean_search => sen_query_exec: i=0x2489d40, > q=0x24b25e0, r=0x24b1e50 > |i|3| hits(exact)=0 > |i|3| n=1 (garrah) > |i|3| hits(unsplit)=40 > |d|3| ft_init_boolean_search => sen_query_close: q=0x24b25e0 > |d|3| ft_boolean_reinit_search => sen_records_rewind: records=0x24b1e50 > |d|3| ft_boolean_close_search => sen_records_close: records=0x24b1e50 > > ・"garrah*"で検索 (exact=0) > mysql> select uid from full_text where MATCH > (`full_text`.`SearchableText`) AGAINST ('garrah*' in boolean mode) limit > 1000; > 40 rows in set (0.00 sec) > > |i|3| ft_init_boolean_search => sen_query_open: str='garrah*', > str_len=7, max_exprs=32 > |d|3| ft_init_boolean_search => sen_query_rest: q=0x24b25e0, rest=0x440c80e8 > |d|3| ft_init_boolean_search => sen_records_open > |i|3| ft_init_boolean_search => sen_query_exec: i=0x2489d40, > q=0x24b25e0, r=0x24b1e50 > |i|3| hits(exact)=0 > |i|3| n=1 (garrah*) > |i|3| hits(unsplit)=40 > |d|3| ft_init_boolean_search => sen_query_close: q=0x24b25e0 > |d|3| ft_boolean_reinit_search => sen_records_rewind: records=0x24b1e50 > |d|3| ft_boolean_close_search => sen_records_close: records=0x24b1e50 > > どうぞよろしくお願いします。 > かずひこ > > _______________________________________________ > Tritonn-dev mailing list > Trito****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/tritonn-dev > -- morita