toshio_uchiy****@mirro*****
toshio_uchiy****@mirro*****
2017年 4月 15日 (土) 14:12:08 JST
林様 お世話になります。その節は丁寧な説明ありがとうございました。 ようやく、全文検索を使った、字幕動画検索サイトに PGroonga を 導入することができました。 林様の説明通り、TokenMecab を使うことにより文字数の多い Apple でも、34ms という検索時間です。Pg_bigm の時はおよそ 200ms でした。一桁違います。動画検索サイト http://moovle.org/ でも、apple で検索すると一呼吸またされていたのが、一瞬で検索 できるようになりました。 恩恵はこれだけではなく、複数の検索語入力があった場合、今まで 一行の字幕に複数語が入っているかどうか検索していました。PGroonga を 導入することにより、少し複雑な検索が可能になりました。それは、 動画の字幕全体に二語目以降の検索語が入っている動画から一語目を 検索するということが実時間で可能になりました。 ありがとうございます。 -----Original Message----- From: groon****@lists***** [mailto:groon****@lists*****] On Behalf Of Kentaro Hayashi Sent: Friday, March 31, 2017 2:39 PM To: groon****@lists***** Subject: [groonga-dev,04311] Re: よろしくお願いします。 On Fri, 31 Mar 2017 11:18:29 +0900 Kentaro Hayashi <hayas****@clear*****> wrote: > > 林です。 > > > On Thu, 30 Mar 2017 14:59:59 +0900 > <toshio_uchiy****@mirro*****> wrote: > snip > > 現在、漢字2文字だと早くて(わたくしの環境では、1ミリ秒以下)ローマ字5 文字 > > apple だと遅い > > (わたくしの環境では、200ミリ秒程度)という傾向が見られます。 > > できれば、200文字 x 5000万行(ローマ字、ひらがな、カタカナ、漢字が混 じって > > いる)で > > ローマ字の単語、ひらがなの単語、漢字の単語で検索した時に、どれも、1ミリ 秒を > > 切って0.x ミリ秒 > > だと助かります。 > > マシンは、Fujitsu TX1310 M1、メモリー 32GB(アドテックのサーバー用)、 HDD > > WD 1TBミラーリング > > (RAIDサーバー用 2 台)です。CPU は、Celeron G1820 です。 > > アドバイスあれば助かります。よろしくお願いします。 > > こちらについては、内山さんの環境で実際に試されないことにはなんとも言えませ ん。。。 > 実際に試してみた結果こうだった、どうするといいでしょう?という疑問について なら > 識者からのアドバイスがもらえるかもしれません。 念のためもう少し補足をすると、現在pg_bigmを使っていてかわりにPGroongaを試し てみよう というのなら↑の状況が改善すると思います。 pg_bigmだと検索語句が2文字のケースでは(バイグラムなので2文字ごとの区切り) インデックスを使って高速に検索できますが、それより長い文字列だと遅い傾向があ ります。 appleを例にするとap - pp - pl - leとトークナイズして、かつそれらが隣り合って いるか 並びのチェックもしないといけません。 しかし、pg_bigmは文字の出現位置の情報をもっていないので、隣り合っているかの チェックを高速に行えません。 一方、PGroongaの場合、インデックスに文字の出現位置の情報も保持しているので 並びも高速にチェックできます。また、実はトークナイズの際PGroongaの デフォルトではappleはap - pp - pl - leではなくappleとそのままトークナイズす るので インデックスの比較が少なくて済むようになっています。 というわけで、内山さんの環境でappleみたいなケースでも 1ミリ秒以下で検索できるのではないかと考えられます。 -- Kentaro Hayashi <hayas****@clear*****>