select

概要

select は、テーブルから指定された条件にマッチするレコードを検索し、見つかったレコードを返却します。

このコマンドはGroonga の select コマンドと互換性があります。

APIの形式

HTTP

リクエスト先
(ドキュメントルート)/d/select
リクエストメソッド
GET
リクエストのURLパラメータ
パラメータの一覧で定義されている物を指定します。
リクエストのbody
なし。
レスポンスのbody
レスポンスメッセージ

REST

対応していません。

Fluentd

形式
Request-Response型。コマンドに対しては必ず対応するレスポンスが返されます。
リクエストの type
select
リクエストの body
パラメータのハッシュ。
レスポンスの type
select.result

パラメータの構文

{
  "table"            : "<テーブル名>",
  "match_columns"    : "<検索対象のカラム名のリストを'||'区切りで指定>",
  "query"            : "<単純な検索条件>",
  "filter"           : "<複雑な検索条件>",
  "scorer"           : "<見つかったすべてのレコードに適用する式>",
  "sortby"           : "<ソートキーにするカラム名のリストをカンマ(',')区切りで指定>",
  "output_columns"   : "<L返却するカラム名のリストをカンマ(',')区切りで指定>",
  "offset"           : <ページングの起点>,
  "limit"            : <返却するレコード数>,
  "drilldown"        : "<ドリルダウンするカラム名>",
  "drilldown_sortby" : "ドリルダウン結果のソートキーにするカラム名のリストをカンマ(',')区切りで指定>",
  "drilldown_output_columns" :
                       "ドリルダウン結果として返却するカラム名のリストをカンマ(',')区切りで指定>",
  "drilldown_offset" : <ドリルダウン結果のページングの起点>,
  "drilldown_limit"  : <返却するドリルダウン結果のレコード数>,
  "cache"            : "<クエリキャッシュの指定>",
  "match_escalation_threshold":
                       <検索方法をエスカレーションする閾値>,
  "query_flags"      : "<queryパラメーターのカスタマイズ用フラグ>",
  "query_expander"   : "<クエリー展開用の引数>"
}

パラメータの詳細

table 以外のパラメータはすべて省略可能です。

また、バージョン 1.0.9 の時点では以下のパラメータのみが動作します。 これら以外のパラメータは未実装のため無視されます。

すべてのパラメータの意味はGroonga の select コマンドの引数と共通です。詳細はGroongaのコマンドリファレンスを参照して下さい。

レスポンス

このコマンドは、レスポンスの body として検索結果の配列を返却します。

[
  [
    <Groonga's status code>,
    <Start time>,
    <Elapsed time>
  ],
  <List of columns>
]

検索結果の配列の構造はGroonga の select コマンドの返り値と共通です。詳細はGroongaのコマンドリファレンスを参照して下さい。

このコマンドはレスポンスの statusCode として常に 200 を返します。これは、Groonga互換コマンドのエラー情報はGroongaのそれと同じ形で処理される必要があるためです。

レスポンスの body の詳細:

ステータスコード
コマンドが正常に受け付けられたかどうかを示す整数値です。以下のいずれかの値をとります。
  • 0 (Droonga::GroongaHandler::Status::SUCCESS) : 正常に処理された。.
  • -22 (Droonga::GroongaHandler::Status::INVALID_ARGUMENT) : 引数が不正である。
開始時刻
処理を開始した時刻を示す数値(UNIX秒)。
処理に要した時間
処理を開始してから完了までの間にかかった時間を示す数値。