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

Back to archive index

sinoh****@netag***** sinoh****@netag*****
2013年 12月 6日 (金) 16:28:55 JST


篠原です。

とても参考になります。

手元の環境で、mroonga_command使用してみました。
たしかに速いようです。

通常のSQLとの比較をここで示したかったのですが、
どこかでキャッシュがきいているようで、SQLが速い場合もあって
うまくデータとれませんでした。

いま、ちょっとやってわかったのは、
mroonga_comannd を使うとコンスタントに速い。
SQLでの場合は、遅い場合がある。
ということです。

結果がJSONなので、mysqlコマンドからだと結果の確認がきびしいので
内容確認しつつ書き換えようかと思います。

// mroonga_command って、groonga_command って間違っちゃうのですけどw

Naoya Murakami <visio****@gmail*****>さん:
> お世話になっております。村上と申します。
> 
> 当方は、データサイズ数百GiBぐらい、レコード数600万〜1000万ぐらいの
> データベースを十以上の項目で絞り込むことを想定した検索システムを
> 個人で作っています。
> 
> MroongaおよびGroongaについて無知だったので(そもそもMySQLも)、
> 満足できるパフォーマンスがなかなか得られずに何十回もテーブル設計
> を見直しました。
> 
> 全文検索システムは実際に構築して試してみないとパフォーマンスを
> 検証できないのが難しいですね。
> 
> 最初は、複雑な絞り込み検索でもインデックスを使ってできるように、
> SPIDER + 絞り込み検索する項目にタグ付けしたテキストを格納した
> カラムの全文インデックスを作って対応しようしていました。
> 
> しかしながら、須藤さんにMroongaでベクターカラムが作れるということと、
> Groongaでは、ある程度自由に複数インデックスが使えるということを
> 教えてもらい、更新は、Mroonga、検索は、mroonga_commandを使って、
> Groongaのselectコマンドを使うことにしました。
> http://sourceforge.jp/projects/groonga/lists/archive/dev/2013-August/001643.html
> 
> 当方の感想ですが、Groongaのselectを使うと、SQLのSELECTに比べてこんなにうれしいです。
> ・Groongaではある程度自由に複数インデックスが使えるので、多数の項目で絞り込み検索を
> しまくっても、爆速です。むしろ一致件数が減って速くなるケースの方が多いです。
> ・カウント結果が同時に返ってくるので、カウントと検索を2回しなくても済みます。
> ・ドリルダウンもできます。ドリルダウンは、ほんの+0.数secだけで、この全文検索条件に
> 一致する項目の数が一瞬で抽出可能です。
> ・Groongaのクエリ構文は、Googleライクな検索システムが作り易いように考えられている構文
> でアプリ側が作りやすいと感じました。
> 
> また、この他に大規模になってくると、転置インデックスの語句の出現回数に応じて、
> 全文検索性能自体が激しく劣化するということがわかったので、
> トークナイズ処理の手当てをして、ようやく満足いく性能が得られたかなというところです。
> 
> まぁ、私は個人でやっているのでテーブル再設計が簡単で、Groongaの構文を使うことも
> 特に問題なかったですが、普通は、開発途中でやり直しは大変そうですね。
> 
> ちなみに、MYISAMとかだったらデータファイルが1個しかできないのが
> PARTITIONでファイルがばらばらになると思うのですが、
> Groonga(Mroongaストレージモード)で作られるデータファイルって1Gごとに
> ばらばらになりますが、インデックスが使われないケースのレコードアクセス
> での絞り込みやカウント等は、カラムに対応づけられた全ファイルを読んじゃう
> んですかね?
> 
> 以上です。
> _______________________________________________
> groonga-dev mailing list
> groon****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/groonga-dev


_______________________
篠原 明彦 (Akihiko Shinohara)/ NetAgent
     http://www.NetAgent.CO.JP/
     TEL: 03-5625-1243
     FAX: 03-5625-9008




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