[groonga-dev,03206] Re: groonga_praceの紹介と、コマンドの出力について

Back to archive index

Masafumi Yokoyama yokoy****@clear*****
2015年 5月 8日 (金) 11:21:17 JST


横山です。

On 2015年05月07日 21:14, Hiroyuki Sato wrote:
> 皆様はじめまして
> 佐藤と申します。
>
> Groongaを本日使い始めました。よろしくおねがします。

昨日はpull requestありがとうございました。
今後ともよろしくお願いします!

> 1, groonga_practiceの紹介
>
>    現在チュートリアルをやっているのですが、各サンプルデータを簡単に作成できる
>    groonga_practiceというスクリプトを作成しました。
>    (もしかしたら似たようなものがあるかもしれませんんが...)
>
>    https://github.com/hiroyuki-sato/groonga_practice
>
>    このスクリプトは各チュートリあるにあるtable_create, column_create, loadなどを
>    抜き出してスクリプトにしたものです。
>    コマンドを実行するとサンプルデータをロードしたデータベースが作成します。
>    selectの練習を簡単にできるようになります。
>
>    お役に立てば幸いです。

すばらしいと思います!

毎回データベースをきれいにしたりコマンドをコピペするのは面倒なので、
コマンドでできるのはよいですね。早速使ってみます。

(使ってみたらtypoを見つけたのでpull requestを出しました)

> 2, コマンドの質問
>
>    ところで、statusコマンドなどをチュートリアルのように整形して表示するには
>    なにか設定が必要なのでしょうか?

Groongaの機能としては提供していないので、何かツールを使う必要があります。
おおまかな選択肢としては以下の2つです。

1. groongaコマンドのラッパーを使う
2. groongaコマンドの出力を整形する

groongaコマンドのラッパーとしては、grnwrapやgrnlineがあります。
以下の記事で紹介されています。

groongaをコマンドラインから便利に使うには - Qiita
http://qiita.com/groonga/items/5f0173b70cdd786b50bf


出力を整形する方法としては、jqがよく使われています。
以下の記事が参考になると思います。

コマンドラインJSONパーサjqを使ってGroongaの出力結果を整形する方法 - 
CreateField
http://createfield.com/%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3JSON%E3%83%91%E3%83%BC%E3%82%B5jq%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6Groonga%E3%81%AE%E5%87%BA%E5%8A%9B%E7%B5%90%E6%9E%9C%E3%82%92%E6%95%B4%E5%BD%A2%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95

例えば、etc/functionsに以下のパッチを当てると、
jqコマンドがあれば整形して表示するようになります。

---
diff --git etc/functions etc/functions
index e414944..4680fc4 100644
--- etc/functions
+++ etc/functions
@@ -13,6 +13,10 @@ function do_groonga(){
      opts="-n"
    fi
    #echo "groonga $opts $db "
-  echo "$cmd" | groonga $opts $db
+  if type jq > /dev/null 2>&1 ; then
+    echo "$cmd" | groonga $opts $db | jq .
+  else
+    echo "$cmd" | groonga $opts $db
+  fi
  }
---


>
>    私の環境だと次のようになってしまいます。
>
>    status
>    [[0,1431000409.16462,0.000223159790039062],{"alloc_count":168,"starttime":1431000407,"uptime":2,"version":"5.0.2","n_queries":0,"cache_hit_rate":0.0,"command_version":1,"default_command_version":1,"max_command_version":2}]
>
>    チュートリアルの出力はこのように見やすいフォーマットになっています。
>
>    status
>    # [
>    #   [
>    #     0,
>    #     1337566253.89858,
>    #     0.000355720520019531
>    #   ],
>    #   {
>    #     "uptime": 0,
>    #     "max_command_version": 2,
>    #     "n_queries": 0,
>    #     "cache_hit_rate": 0.0,
>    #     "version": "4.0.1",
>    #     "alloc_count": 161,
>    #     "command_version": 1,
>    #     "starttime": 1395806057,
>    #     "default_command_version": 1
>    #   }
>    # ]
>
> 3, 環境
>   OSX 10.10.3
>   groonga: 5.0.2
>
>
> よろしくお願いします。
>
> --
> 佐藤博之
> _______________________________________________
> groonga-dev mailing list
> groon****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/groonga-dev

-- 
横山 昌史 <Masafumi Yokoyama>
E-mail: yokoy****@clear*****
株式会社クリアコード
〒170-0005 東京都豊島区南大塚3-29-9
Tel: 03-5927-9440
Web: http://www.clear-code.com/




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