load - データのロード
load values table [columns [ifexists [input_type [output_type]]]]
groonga組込コマンドの一つであるloadについて説明します。組込コマンドは、groonga実行ファイルの引数、標準入力、またはソケット経由でgroongaサーバにリクエストを送信することによって実行します。
loadは、使用しているデータベースのテーブルにレコードを登録し、カラムの値を更新します。
values
input_typeに指定する形式で登録するレコードの値を表現した文字列を渡します。
input_typeがjsonである場合には、以下のいずれかの形式が使用できます。
- 形式1
- [[カラム名1, カラム名2,..], [カラム値1, カラム値2,..], [カラム値1, カラム値2,..],..]
- 形式2
- [{カラム名1: カラム値1, カラム名2: カラム値2}, {カラム名1: カラム値1, カラム名2: カラム値2},..]
形式1の[カラム名1, カラム名2,..]の要素はcolumns引数が省略された場合のみ有効です。
対象のテーブルが主キーを持つテーブルであった場合は、カラム名の中に’_key’(主キーを示す疑似カラム名)が含まれていなければなりません。
values引数が省略された場合には、括弧の対応が取れるまで標準入力からvaluesの値を読み取ります。引数として値を指定する場合は、文字列のエスケープが必要ですが、標準入力から与える文字列はエスケープする必要がありません。
続きの文字列については、空白文字(‘ ‘)をエスケープする必要はありません。
table
レコードを追加しようとするテーブルの名前を指定します。
columns
テーブルに登録するレコードに値を設定するカラム名のリストを指定します。
ifexists
指定した主キーに対応するレコードが既にテーブルに登録済みであった場合に実行するscript形式のgrn式文字列を指定します。ifexistsにgrn式が指定された場合は、式の値が真である場合に限り、その他のカラムの値が更新されます。(デフォルトはtrue)
input_type
入力形式を、json,tsv,xmlのいずれかで指定します。 [1]
output_type
出力形式を、json,tsv,xmlのいずれかで指定します。 [1]
返値 —
以下のようなjson形式で値が返却されます。 [1]
[[リターンコード, 処理開始時間, 処理時間], 登録件数]
リターンコード
grn_rcに対応する数値が返されます。0(GRN_SUCCESS)以外の場合は、続いてエラー内容を示す 文字列が返されます。
処理開始時間
処理を開始した時間について、1970年1月1日0時0分0秒を起点とした秒数を小数で返します。
処理時間
処理にかかった秒数を返します。
登録件数
テーブルに登録されたレコードの件数が返されます。
テーブルEntryにレコードを登録します。:
load --table Entry --input_type json --output_type json --values [{\"_key\":\"abandon\",\"body\":\"放棄する\"}]
[[0,1268211658.00739,0.000361],1]
標準入力からvaluesの値を与えます。:
load --table Entry --input_type json --output_type json
[
{"_key": "abbreviate", "body": "短縮する"}
]
[[0,1268211658.00739,0.000361],1]