2016-05-01 13 views
0

私は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の次のバリエーションはありますか?
  • のみ<start>日時などを保存する前に/<duration>一部を取り除くために文字フィルタを使用してください。しかし、文字フィルターがの前に発生するかどうかは分かりません。タイプ:日付としてを保存する前です。もしそうでなければ、 '/ `部分は削除されず、有効な日付文字列を渡すことはありません。
  • 日付の種類を使用しないでください:トークナイザを使用して/に分割し、少なくとも2つの部分を別々のトークンとして保存します。しかし、日付の計算を使用することはできません。
  • 変換を使用します。これは推奨されていないようですが。私の代わりにcopy_toを使用して読ん、それはに思わ用語を組み合わせ、と私は休憩離れ
  • この用語プラグインのいくつかの並べ替えにしたいですか?多分、OIM仕様で記述されたこの「区間」データ型を完全にサポートするプラグインでしょう。おそらく、別々の部分を格納するプラグイン...?

は(私が可能であればelasticsearchのみの技術を使用することを好む)

  • 私はこのプラグインを編集したり、排他的<start><end>部品を使用して自分のプラグインを作成し、両方の節約ができ、私のアプリケーションを変更に別途フィールドに;
    • しかし、これは、彼らはまた、(ない持続時間を有する、上記PT0S例)「インスタント」事実を表現するために厄介であることができる単一フィールド
    • で結合しなければならないと言うOIM仕様を破ります。私はちょうどendプロパティの同じ値をstartプロパティとして使用すると思います... 0長さの継続時間(PT0S)よりも厄介ではありません。

答えて

1

ない直接的な答えが、それはXBRL-JSON仕様の最新ドラフト内部は離れて単一フィールドの表現から移動してきたことは注目に値します。 "/"で区切られた表記法はISO標準ですが、ツールのサポートは極端に悪いと思われ、ワーキンググループは開始日と終了日を別々のフィールドに切り替えることを選択しました。私はArelleのサポートが順調に進むと期待しています。

+0

ありがとうございました。それは私の疑問を欺くだろう。オリジナルの質問を掲示してから考えた他の可能性:1)logstashを使用してカスタムのlogstashフィルタを作成して、JSONを私が望むように変換することができます。 2)「duration in time」と呼ばれるカスタムのelasticsearchタイプを作成します。ala [attachments](https://github.com/elastic/elasticsearch-mapper-attachments)、特に質問するようなセマンティクスを指定できる場合はesp 「四半期」(〜3か月))。私がこれらのうちの1つを試してみたら、みんなに知らせるでしょう。 –

+0

私は[最新の仕様](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に保存する目的でカスタムテキスト形式を解析すると、おそらく一般化するべきです...) –

関連する問題