ESへXGETしたときのfieldsの出力順について


#1

こんにちは。

こちらにはたびたびお世話になっております。

Elasticsearch Ver.1.7.1

XGETクエリのfieldsでA,B,C,Dと指定したら

fields:{A:[], B:[], C:[], D:[]}

といったように、クエリの記述に沿ってダウンロードしたいと考えています。

XGETクエリの記述方法で想定した出力結果を得られるのでしょうか、
それともElasticsearchの設定(template)などを調整する必要があるのでしょうか。

以上、よろしくお願いします。

訂正(16.09.21)--------------------------------
勘違いがあった為、下記文章を上記から削除しました。
引き続き上記質問についてよろしくお願いいたします。

Elasticsearchに対してXGETを使用してデータをダウンロードしているのですが、
XGETで指定したfieldsを指定しているにもかかわらず、
ダウンロードしたファイル内にデータによってはfields自体が存在しない場合があります。
(実例.windows eventlog アプリケーション の fields:CategoryString のあるなし)
(実例.windows eventlog アプリケーション の fields:message のあるなし)

※今はデータによっては{A,B,D}のようにfieldsが漏れたり、{A,C,B,D}のようにfieldsの列順?がまばらになる。
※上記はorder byのソート順についての質問ではありません。


(Jun Ohtani) #2

XGETと書かれていますが、実際にはどの処理でしょうか?searchでしょうか?getでしょうか?

JSONの仕様として、fieldのキーの順序を保証するものはないかと思います。
何かプログラミング言語でアクセスされているようでしたら、アプリ側でソートしていただくのが良いかと思います。


#3

ご返信ありがとうございます。

XGETと書かれていますが、実際にはどの処理でしょうか?searchでしょうか?getでしょうか?

serachです。

何かしらクエリでJSONのfieldキー順序が指定できるものがあればと思ったのですが、
ないということが分かりありがとうございます。

ご提案いただいた通りアプリ側でfieldの順番を固定しようと思います。(アプリ:jq)

ありがとうございました。


(system) #4