# groonga - オープンソースのカラムストア機能付き全文検索エンジン

- English

# 7.2. 出力

Groongaは以下の出力形式をサポートしています。

> - JSON
> - XML
> - TSV（タブ区切り形式）
> - MessagePack

JSONがデフォルトの出力形式です。

## 7.2.1. 使い方

Groongaには以下のクエリーインターフェイスがあります。

> - コマンドライン
> - HTTP

それぞれのインターフェイスで出力形式を変更する方法は異なります。

### 7.2.1.1. コマンドライン

`groonga DB_PATH` または `groonga -c` でコマンドラインクエリーインターフェイスを使うことができます。これらのgroongaコマンドでは `>` というプロンプトが表示されます。クエリーインターフェイスでは `output_type` オプションで出力形式を指定できます。

`output_type` オプションを指定しない場合はJSON形式の出力になります:

    > status
    [[0,1327721628.10738,0.000131845474243164],{"alloc_count":142,"starttime":1327721626,"uptime":2,"version":"1.2.9-92-gb87d9f8","n_queries":0,"cache_hit_rate":0.0,"command_version":1,"default_command_version":1,"max_command_version":2}]

明示的に `output_type` に `json` を指定することもできます。この場合はJSON形式の出力になります:

    > status --output_type json
    [[0,1327721639.08321,7.93933868408203e-05],{"alloc_count":144,"starttime":1327721626,"uptime":13,"version":"1.2.9-92-gb87d9f8","n_queries":0,"cache_hit_rate":0.0,"command_version":1,"default_command_version":1,"max_command_version":2}]

XML形式の出力にする場合は `output_type` に `xml` を指定します:

    > status --output_type xml
    <?xml version="1.0" encoding="utf-8"?>
    <RESULT CODE="0" UP="1327721649.61095" ELAPSED="0.000126361846923828">
    <RESULT>
    <TEXT>alloc_count</TEXT>
    <INT>146</INT>
    <TEXT>starttime</TEXT>
    <INT>1327721626</INT>
    <TEXT>uptime</TEXT>
    <INT>23</INT>
    <TEXT>version</TEXT>
    <TEXT>1.2.9-92-gb87d9f8</TEXT>
    <TEXT>n_queries</TEXT>
    <INT>0</INT>
    <TEXT>cache_hit_rate</TEXT>
    <FLOAT>0.0</FLOAT>
    <TEXT>command_version</TEXT>
    <INT>1</INT>
    <TEXT>default_command_version</TEXT>
    <INT>1</INT>
    <TEXT>max_command_version</TEXT>
    <INT>2</INT></RESULT>
    </RESULT>

TSV形式の出力にする場合は `output_type` に `tsv` を指定します:

    > status --output_type tsv
    0     1327721664.82675        0.000113964080810547
    "alloc_count" 146
    "starttime"   1327721626
    "uptime"      38
    "version"     "1.2.9-92-gb87d9f8"
    "n_queries"   0
    "cache_hit_rate"      0.0
    "command_version"     1
    "default_command_version"     1
    "max_command_version" 2
    END

MessagePack形式の出力にする場合は `output_type` に `msgpack` を指定します:

    > status --output_type msgpack
    (... omitted because MessagePack is binary data format. ...)

### 7.2.1.2. HTTP

`groonga --protocol http -s DB_PATH` でHTTPクエリーインターフェイスを使うことができます。groonga HTTPサーバーはデフォルトで10041番ポートで起動します。このクエリーインターフェイスでは拡張子で出力形式を指定します。

拡張子を指定しない場合はJSON形式の出力になります:

    % curl http://localhost:10041/d/status
    [[0,1327809294.54311,0.00082087516784668],{"alloc_count":155,"starttime":1327809282,"uptime":12,"version":"1.2.9-92-gb87d9f8","n_queries":0,"cache_hit_rate":0.0,"command_version":1,"default_command_version":1,"max_command_version":2}]

明示的に `json` 拡張子を指定することもできます。この場合はJSON形式の出力になります:

    % curl http://localhost:10041/d/status.json
    [[0,1327809319.01929,9.5367431640625e-05],{"alloc_count":157,"starttime":1327809282,"uptime":37,"version":"1.2.9-92-gb87d9f8","n_queries":0,"cache_hit_rate":0.0,"command_version":1,"default_command_version":1,"max_command_version":2}]

XML形式の出力にする場合は `xml` 拡張子を指定します:

    % curl http://localhost:10041/d/status.xml
    <?xml version="1.0" encoding="utf-8"?>
    <RESULT CODE="0" UP="1327809339.5782" ELAPSED="9.56058502197266e-05">
    <RESULT>
    <TEXT>alloc_count</TEXT>
    <INT>159</INT>
    <TEXT>starttime</TEXT>
    <INT>1327809282</INT>
    <TEXT>uptime</TEXT>
    <INT>57</INT>
    <TEXT>version</TEXT>
    <TEXT>1.2.9-92-gb87d9f8</TEXT>
    <TEXT>n_queries</TEXT>
    <INT>0</INT>
    <TEXT>cache_hit_rate</TEXT>
    <FLOAT>0.0</FLOAT>
    <TEXT>command_version</TEXT>
    <INT>1</INT>
    <TEXT>default_command_version</TEXT>
    <INT>1</INT>
    <TEXT>max_command_version</TEXT>
    <INT>2</INT></RESULT>
    </RESULT>

TSV形式の出力にする場合は `tsv` 拡張子を指定します:

    % curl http://localhost:10041/d/status.tsv
    0     1327809366.84187        8.44001770019531e-05
    "alloc_count" 159
    "starttime"   1327809282
    "uptime"      84
    "version"     "1.2.9-92-gb87d9f8"
    "n_queries"   0
    "cache_hit_rate"      0.0
    "command_version"     1
    "default_command_version"     1
    "max_command_version" 2
    END

MessagePack形式の出力にする場合は `msgpack` 拡張子を指定します:

    % curl http://localhost:10041/d/status.msgpack
    (... omitted because MessagePack is binary data format. ...)