ElasticSearch の最初のステップを示し、現在コマンド ラインから curl で作業していることをテストします。ただし、テキスト エディターですべてを入力してコンソールに貼り付ける必要があり (コンソールにタブの書式設定はありません)、得られる json 出力は書式設定されていないため、ちょっと面倒です。
したがって、json データを操作するための多くの SQL コンソールに相当するものがあるかどうか疑問に思っていました。
この種のタスクにはどのようなツールを使用しますか?
ElasticSearch の最初のステップを示し、現在コマンド ラインから curl で作業していることをテストします。ただし、テキスト エディターですべてを入力してコンソールに貼り付ける必要があり (コンソールにタブの書式設定はありません)、得られる json 出力は書式設定されていないため、ちょっと面倒です。
したがって、json データを操作するための多くの SQL コンソールに相当するものがあるかどうか疑問に思っていました。
この種のタスクにはどのようなツールを使用しますか?
まず、取得した json 出力がフォーマットされていない場合は、?pretty=1
任意の URL に追加します。結果ははるかに良くなります。別のオプションは、python -m json.tool
Python 2.6+ を使用している場合に出力をパイプすることです。| j
後者のオプションは、シェル関数に保存されており、 json を出力するコマンドの後に簡単に入力できるため、気に入っています。はるかに短く、一般的です。
curl コマンドを発行するには、いくつかのオプションがあります。最も一般的な解決策は、コマンド全体を含むシェル スクリプトを作成することです。例えば:
curl -s localhost:9200/foo/_search -d'
{"query":
{"query_string":
{"query":"foo*"}}}' | python -m json.tool
シェル プロンプトに貼り付けるのではなく、ファイルに保存します。次に、ソースを微調整して、必要なだけ実行します。
% sh query
これのバリエーションは、Emacs を使用することです。curl
私はそれを使用して、バッファーの領域で実行したり、結果を操作したりします。shell-command-on-region
またはM-|
、そこでは良い選択です。したがって、上記のスクリプトではM-| sh RET
、シェルに切り替える代わりに発行できます。Vim では、似たようなことができます。
私はこれをチェックしていませんが、多くの人がelasticsearch-headを気に入っているようです。これは、クエリを発行して構造化された結果を提供する UI です。 http://mobz.github.com/elasticsearch-head/
更新: Perl の JSON モジュールにはjson_pp
、Python のjson.tool
. インストールするJSON::XS
と、(より高速な)json_xs
ビンもあります。
かなり便利な別のツールを見つけました
http://stedolan.github.com/jq/tutorial/
curl ideasba.org/api/ideas/1 | jq .
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 525 100 525 0 0 990 0 --:--:-- --:--:-- --:--:-- 2488
{
"created": "2012-09-22T05:20:00Z",
"author": {
"nickname": "opensas",
"created": "2012-09-22T01:40:00Z",
"id": 2,
...
フィルタリングなど、jsonで動作するいくつかのオプションがあります
curl ideasba.org/api/ideas/1 | jq .votes
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 525 100 525 0 0 809 0 --:--:-- --:--:-- --:--:-- 2441
{
"neg": 1,
"pos": 8
}
https://github.com/micha/jsawkが最適なソリューションです。
JSAWK と Resty のルール :)
Chrome 用の Sense プラグインを強くお勧めします。インテリジェントなオートコンプリート、JSON 構文のチェックと整理、構文が強調された出力が提供されます。積極的に開発が進んでおり、私が商談で要求を示したいときに選択するツールです。