Kouhei Sutou
kou****@clear*****
2013年 12月 6日 (金) 18:27:43 JST
須藤です。 In <CANM+****@mail*****> "[groonga-dev,01958] Re: FULLTEXTインデックス以外での絞り込みについて" on Fri, 6 Dec 2013 17:54:32 +0900, Naoya Murakami <visio****@gmail*****> wrote: > ちなみに、Advent-Calenderの2回目(1回目はまた別の性能比較をやります。)の話題として、 > Mecabトークナイザにおける転置インデックスの語句の出現回数に応じた検索性能を比較してみた、 > みたいなことを考えており、語彙表の語句ごとに検索の秒数を取得しようと思うのですが、 おぉ、楽しみです! > GroongaかMroongaでは、非わかち書き検索を明示的にすることができますか? 残念ながらできないです。。。 > できないようでしたら、検索時のみトークナイザをいじるか、Mecab辞書をいじることで > 対応しようと思います。 お手数おかけします。。。 > また、Groongaのselectでは、0件の場合に前方一致→非わかち書きとエスカレーション > するようですが、MroongaのSELECT MATCH AGAINSTでは、検索のエスカレーションはしない > という認識でよいですか? いや、それがするんですよ。 この挙動はmroonga_match_escalation_thresholdという変数を設定 すると制御できます。 http://mroonga.org/ja/docs/reference/server_variables.html#mroonga-match-escalation-threshold Groongaと同じように-1を指定すればエスカレーションしないよう にできます。 >> > Groonga(Mroongaストレージモード)で作られるデータファイルって1Gごとに >> > ばらばらになりますが、インデックスが使われないケースのレコードアクセス >> > での絞り込みやカウント等は、カラムに対応づけられた全ファイルを読んじゃう >> > んですかね? >> >> 読みます! >> > > なるほど、カラム刈り込みでファイルが絞り込まれ、さらに、 > 検索条件で読み込むファイルが絞り込まれているのだったら、 > すごいなぁと思いましたが、さすがにそういうことはないんですね。 あ、すべてのレコードのカラムを読まなくてよいケースではすべて のファイルを読まないこともあります。必要になったファイルだけ 読みます。 ただ、1レコード分ずつ読み込みにいっているのではなく、ある程 度のまとまりで読み込むので(その方が全体的に見ると効率がよ い)、すべてのレコードにアクセスしない場合でも、全体的に分散 してアクセスする場合は結局すべてのファイルを読み込むことにな ります。必要なデータが局所的に固まっていれば読む量は少なくな ります! -- 須藤 功平 <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