[Tritonn-dev 133] Re: "word*"という検索式の意味

Back to archive index

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




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