[groonga-dev,01971] Re: FULLTEXTインデックス以外での絞り込みについて

Back to archive index

Kouhei Sutou kou****@clear*****
2013年 12月 9日 (月) 10:51:48 JST


須藤です。

In <CANM+HhcbDuH8s0mnvCiicC942xdJ2_y6Gzo****@mail*****>
  "[groonga-dev,01965] Re: FULLTEXTインデックス以外での絞り込みについて" on Sat, 7 Dec 2013 00:45:02 +0900,
  Naoya Murakami <visio****@gmail*****> wrote:

>> Groongaのどこらへんが遅いのかちょっと測ってみたのですが、
>> 結果レコードセットを作るところが遅いですねぇ。。。
>>
>> 結果レコードセットを作るの以外(検索を含む)で0.1秒くらいなの
>> で、結果レコードセットを作るので1秒以上かかっていますねぇ。
>>
>>
>> http://groonga.org/ja/publication/presentation/groonga-night-2-the-future.pdf
>> の18ページのベンチマークを見ると、grn_hash(結果レコードセッ
>> トを入れるテーブル)は1レコードあたり0.5マイクロ秒かかるっぽ
>> くて、今回は500万件ヒットしているので、
>>
>>   0.5 * 5_000_000 = 2500000.0マイクロ秒 = 2.5秒
>>
>> となって、まぁ、1秒以上かかりそうだなぁという感じはしますね。
>>
>> 結果レコードセットが遅いということはわかったので、そんなに大
>> 量にヒットしないやつなら速いはずです。

> これで、語彙表に含まれる語句の出現回数が結構多いトークンを含む単語であっても、
> 絞込みの有の方が速度がでていた理由がわかりました。

役に立つ情報だったようでよかったです!

> 当方の経験則上、全文検索結果が遅い場合、以下の3つの観点があるように
> 思われます。
> 
> 1.検索がインデックスアクセスのみであるかどうか。
> 2.語彙集に含まれる語句の出現回数が非常に多いかどうか。
> (影響がありそうな出現回数は、本当に非常に非常に多い場合で
> 大抵の規模の場合は耐えると思われます)
> 3.検索結果レコード数が多いかどうか。
> (そこまでの劣化はないものの、結果レコード数に応じて数秒程度の劣化は生じうる。)
> 
> このあたりでチューニングしていけば、大抵0.1s〜数秒以内には、結果が得られそうですね!

そうですね!妥当だと思います!

-- 
須藤 功平 <kou****@clear*****>
株式会社クリアコード <http://www.clear-code.com/> (03-6231-7270)

Groongaサポート:
  http://groonga.org/ja/support/
パッチ採用はじめました:
  http://www.clear-code.com/recruitment/
コミットへのコメントサービスはじめました:
  http://www.clear-code.com/services/commit-comment.html




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