[groonga-dev,00695] Re: 全文検索カラム以外を含んだ検索について

Back to archive index

Takayuki Honda honda****@gmail*****
2012年 2月 1日 (水) 21:14:51 JST


本多と申します。
首題の件、ご回答頂きまして誠にありがとうございます。

> 今回のケースは3.にあたるかと思います。
> mroongaでは、このうち1.と2.のみを実装していますが、3.と4.は
> 未実装です。
上記の件了解致しました。
対応を期待しつつ、現状では実データで試してみて、
応答速度が許容範囲かどうか判断していきたいと思います。

> 須藤です。
> 
> In <20120****@gmail*****>
>   "[groonga-dev,00689] 全文検索カラム以外を含んだ検索について" on Tue, 31 Jan 2012 18:26:06 +0900,
>   Takayuki Honda <honda****@gmail*****> wrote:
> 
> > Fulltext_index対象以外のカラムを含んだ検索をする場合、
> > tritonnですと、2ind index機能を当てにして、
> > 下記のようなクエリを実行していました。
> > 
> > --------------------------------------------------
> > select 
> >     * 
> > from
> >     table force index(idx01) 
> > where 
> >     match(body) against (“さんぷる”) 
> > and 
> >     flag = 1
> > ---------------------------------------------------
> > 
> > mroongaですと、force indexを外して下記のようになると思いますが、
> > 
> > ---------------------------------------------------
> > select 
> >     * 
> > from
> >     table
> > where 
> >     match(body) against (“さんぷる”) 
> > and 
> >     flag = 1
> > ---------------------------------------------------
> > 
> > この場合の動作は、まず全文検索を実行した後、
> > 検索対象の通常カラムのみを読み込んで、対象行を特定するのか、
> > はたまた逆なのか、どちらになりますでしょうか。
> 
> 「まず全文検索を実行した後、検索対象の通常カラムのみを読み込
> んで、対象行を特定するのか」になります。
> (MySQLのクエリ実行プランを考えているところも関係するので、
> 全体のレコード数やヒット件数によっては異なるかもしれません。)
> 
> 
> さて、Tritonnの2ind機能では以下の4種類の問題を解決していまし
> た。
>   http://qwik.jp/tritonn/userguide.html#0cb0baa8b27d86e9233f601a9cc9cc4f
> 
> 1. limit指定で出力を制限しても応答が遅い問題
>      select columns from table where match(a) against(b) limit 1000, 10
> 2. count(*)等で件数を取得するだけでも応答が遅い問題
>      select count(*) from table where match(a) against(b);
> 3. 全文検索以外の条件で絞り込む処理が遅い問題
>      select columns from table where match(a) against(b) and c like 'hoge%';
> 4. 全文検索以外の条件でソートする処理が遅い問題
>      select columns from table where match(a) against(b) order by c;
> 
> 今回のケースは3.にあたるかと思います。
> 
> mroongaでは、このうち1.と2.のみを実装していますが、3.と4.は
> 未実装です。
> 
> 1.に相当する「全文検索時の ORDER BY LIMIT 高速化」:
>   http://mroonga.github.com/ja/docs/userguide/storage.html#optimisation-for-order-by-limit-in-full-text-search
> 2.に相当する「行カウント高速化」:
>   http://mroonga.github.com/ja/docs/userguide/storage.html#optimisation-for-counting-rows
> 
> 
> で、3.についてはcond pushという仕組みで実現できそうなのです
> が、まだ手を付けられていません。4.についてはまだ検討していま
> せん。
> 
> 未着手な改善案がいくつかあるので、要望等に応じて優先順位をつ
> けて開発していきたいと思っています。

-- 
Takayuki Honda <honda****@gmail*****>




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