[Senna-dev 922] Re: NGRAMインデックスを利用している場合のキーワードマッチ条件について

Back to archive index

Haruhiko Mitsuya 3arro****@gmail*****
2008年 6月 16日 (月) 02:26:58 JST


末永様

お忙しいところ、丁寧なご説明ありがとうございます。

本メールに加えて、末永様のブログエントリー等も拝見し、仕様を
理解いたしました。


例えば、
製品カタログ検索のようなケースでは、SPLIT_ALPHA, SPLIT_DIGIT,
SPLIT_SYMBOLの指定を行った方が良さそうですね。


ご回答、ありがとうございます!




2008/06/14 23:05 Tasuku SUENAGA <a****@razil*****>:
> Tritonnのデフォルトでは、
> アルファベット・数字・記号の場合はbi-gramではなく、
> tokenでインデックス作成を行うように設定されています。
>
> 一般的な用途である、文章を検索する目的に最適化するためです。
>
> 前方一致だけでよければ、以下の手法が使えます。
> 1. '*D-7'をクエリに指定することによって、
>   前方一致の検索はできると思います。
> MATCH(col1) AGASINST('*D-7 ca' IN BOOLEAN MODE);
>
> 完全に一致させたいのであれば、以下の手法が使えます。
> 2. インデックス作成時に、SPLIT_ALPHA, SPLIT_DIGIT, SPLIT_SYMBOL
>   を指定してください。
>   CREATE FULLTEXT INDEX ft
>    USING NGRAM, SPLIT_ALPHA, SPLIT_DIGIT, SPLIT_SYMBOL
>    ON table1 (col1);
>
> Haruhiko Mitsuya さんは書きました:
>> お世話になっております。みつやと申します。
>>
>> Senna(Tritonn)のNGRAMインデックスを利用している場合の
>> キーワードマッチ条件について調べております。
>>
>>
>>
>> 今のところ、最新のTritton1.0.9の設定を規定値で動作させております。
>>
>> インデックスも規定値で作成していますので、n-gram(Sennaの規定値で
>> おそらくbigram?)形式になっているはずです。
>>
>>
>> n-gramであればmecabで動作させている場合にくらべて、辞書に無い
>> キーワードでもヒットし易いはずと考えておりました。
>>
>>
>> ところが、英単語の一部分などで検索をかけると、結構な割合で検索
>> 漏れが発生してしまいます。
>>
>> 例えば、
>>
>> cards
>> audio
>>
>> では検索ヒットしますが、
>>
>>
>> ca
>> aud
>>
>>
>> ではヒットしません。
>>
>>
>>
>> TCD-12
>> KH-Y54
>>
>>
>> このようなありがちな製品IDのような文字列もヒットしたり、ヒット
>> しなかったりします。
>>
>>
>>
>>
>> [Senna-dev 664] NGRAM での英数字の部分一致検索について
>> http://lists.sourceforge.jp/mailman/archives/senna-dev/2007-August/000663.html
>>
>>
>> ここでも説明されているように、純粋にn-gram化されているわけではない
>> ように感じられるのですが、規定値の動作としては、実際のところどのような
>> 仕様になっているのでしょうか。
>>
>>
>> ※公式サイトなどを探してみましたが、そのものズバリと思えるような解説
>> ページなどは見つけられませんでした。。
>>
>>
>> もし、どなたかご教示頂けましたら誠に幸いです。
> ---
> tasuku <a****@razil*****>
>
> _______________________________________________
> Senna-dev mailing list
> Senna****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/senna-dev
> バグ報告方法:http://qwik.jp/senna/bug_report.html
>




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