私はelasticsearchを使用してXBRL JSONを保存しています。elasticsearch date from <start-date>/<duration> XBRL-JSON形式
This xBRL-JSON OIM specoim:period
プロパティについて説明します、そうでなければ{間隔} プロパティを表すISO 8601時間間隔を
は、以下のいずれかの形式で表現さ:
<開始>/<端を>
< start>/< duration>
<期間>/<エンド>
<スタート>と<エンド>は、XSDに応じて有効である場合:datetimeデータ型、および<期間> XSDに応じて有効である:持続。
- 2016-01-01T00:00:00/PT0S
- 2015-01-01T00:00:00/P1Y
このようなarelle's plugin表情から
例私はarelleのプラグインが排他的にこのフォーマットを生成することに気付きました:
- <はスタート>/<期間>
私の質問
は、少なくともelasticsearchで日付型として<start>
一部を保存する方法はありますか?
私が持っていたアイデア:のみ
elastichsearch(私の好み)
/<duration>
一部を先取りカスタム日付形式を使用しますが、- I避難所にそれを無視しますジョーダをまだチェックしていない。 は、特殊文字の一部でない場合は、日付形式の文字「」を無視しますか? "/"区切り記号または任意の継続時間値に先行する "P"(上記の
PT0S
およびP1Y
など)と同じですか? - EDITしたがって、一重引用符はリテラルをエスケープします。これは
yyyy'/P'
の値 '2015/P'を受け入れます。しかし、残りの期間はより動的になる可能性があります。 - Re:dynamic; Jodaは "\ d"や "+"修飾子のような正規表現やワイルドカード文字を受け入れますので無視していいですすべて
P
の次のバリエーションはありますか?
- I避難所にそれを無視しますジョーダをまだチェックしていない。 は、特殊文字の一部でない場合は、日付形式の文字「」を無視しますか? "/"区切り記号または任意の継続時間値に先行する "P"(上記の
- のみ
<start>
日時などを保存する前に/<duration>
一部を取り除くために文字フィルタを使用してください。しかし、文字フィルターがの前に発生するかどうかは分かりません。タイプ:日付としてを保存する前です。もしそうでなければ、 '/ `部分は削除されず、有効な日付文字列を渡すことはありません。 - 日付の種類を使用しないでください:トークナイザを使用して
/
に分割し、少なくとも2つの部分を別々のトークンとして保存します。しかし、日付の計算を使用することはできません。 - 変換を使用します。これは推奨されていないようですが。私の代わりに
copy_to
を使用して読ん、それはに思わ用語を組み合わせ、と私は休憩離れ - この用語プラグインのいくつかの並べ替えにしたいですか?多分、OIM仕様で記述されたこの「区間」データ型を完全にサポートするプラグインでしょう。おそらく、別々の部分を格納するプラグイン...?
は(私が可能であればelasticsearchのみの技術を使用することを好む)
- 私はこのプラグインを編集したり、排他的
<start>
と<end>
部品を使用して自分のプラグインを作成し、両方の節約ができ、私のアプリケーションを変更に別途フィールドに;- しかし、これは、彼らはまた、(ない持続時間を有する、上記
PT0S
例)「インスタント」事実を表現するために厄介であることができる単一フィールド - で結合しなければならないと言うOIM仕様を破ります。私はちょうど
end
プロパティの同じ値をstart
プロパティとして使用すると思います... 0長さの継続時間(PT0S
)よりも厄介ではありません。
- しかし、これは、彼らはまた、(ない持続時間を有する、上記
ありがとうございました。それは私の疑問を欺くだろう。オリジナルの質問を掲示してから考えた他の可能性:1)logstashを使用してカスタムのlogstashフィルタを作成して、JSONを私が望むように変換することができます。 2)「duration in time」と呼ばれるカスタムのelasticsearchタイプを作成します。ala [attachments](https://github.com/elastic/elasticsearch-mapper-attachments)、特に質問するようなセマンティクスを指定できる場合はesp 「四半期」(〜3か月))。私がこれらのうちの1つを試してみたら、みんなに知らせるでしょう。 –
私は[最新の仕様](http://www.xbrl.org/Specification/xbrl-json/CR-2016-12-14/xbrl-json-CR-2016-12-14)を参照してください。html)は、もはやISO 8601フォーマットを使用しません。代わりに、 'xbrl:startDate'と' xbrl:endDate'は別々のJSONプロパティであり、両方が存在する場合、durationが推測されます。だから、私のユースケースは間違いですが、他の人が類似した質問や答えを持っているかもしれません(つまり、elasticsearchに保存する目的でカスタムテキスト形式を解析すると、おそらく一般化するべきです...) –