[groonga-dev,03900] Re: ベクターカラムのドリルダウン結果のn_subrecsの合計値を取得したい

Back to archive index

Kouhei Sutou kou****@clear*****
2016年 2月 2日 (火) 23:34:21 JST


須藤です。

In <CANM+HhddmUhNN28esh5KvDu8KP728=_iWNf8****@mail*****>
  "[groonga-dev,03895] Re: ベクターカラムのドリルダウン結果のn_subrecsの合計値を取得したい" on Tue, 2 Feb 2016 02:09:58 +0900,
  Naoya Murakami <visio****@gmail*****> wrote:

> 思ったのですが、本件、対応しようと思うと以下のような方法になるでしょうか。
> 
> ・Droongaのようにドリルダウンやselectの結果テーブルに対して、
> さらに多段の検索、集計やグループができるオプションを実装する。
> 
> ・返り値はドリルダウンのようにもう一つ配列を増やす。
> 
> 問題は、jsonじゃなくてコマンドの形式で多段の数珠つなぎを表現する
> のは難しいことと、ただでさえ多いselectの引数がさらに増えることです
> かね。
> 
> 結構、大変そうですね。。

私が妄想したのは

  select \
    Posts \
    --drilldown[tags_drilldown].keys tags \
    --drilldown[tags_drilldown_sum].table tags_drilldown \
    --drilldown[tags_drilldown_sum].calc_types SUM \
    --drilldown[tags_drilldown_sum].calc_target _nsubrecs \
    --drilldown[tags_drilldown_sum].output_columns _sum

というAPIでした。

--drilldown[...].tableで他の--drilldown[...]の「...」に指定
したドリルダウン結果を指定できることと、
--drilldown[...].keysを省略できること
がポイントです。

--drilldown[...]の依存関係はトポロジカルソートというのをすれ
ば解決できます。makeとかで使われているやつです。

--drilldown[...].keysを省略できるのは、全レコードを1つのグルー
プとみなすためです。今はkeysに指定した値でグループを作ってい
るので、keysに指定した値がすべて同じでない限り全レコードの合
計値は計算できないのです。


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

Groongaベースの全文検索システムを総合サポート:
  http://groonga.org/ja/support/
パッチ採用 - プログラミングが楽しい人向けの採用プロセス:
  http://www.clear-code.com/recruitment/
リーダブルコードワークショップ:
  http://www.clear-code.com/services/code-reader/readable-code-workshop.html




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