2017-02-18 9 views
0

私はkibanaに行うために非常に簡単です月額企業のユニークな数を取得している何elasticsearchとインポートデータ月新会社の棒グラフの上に月を作成する方法

PUT test 
{ 
    "mappings": { 
    "orders": { 
     "properties": { 
     "devices": { 
      "type": "integer" 
     }, 
     "location": { 
      "type":"geo_point" 
     }, 
     "time" : { 
      "type":"date", 
      "format": "epoch_second" 
     }, 
     "company" : { 
     "type":"keyword"  
     } 
     } 
    } 
    } 
} 

のインデックスを作成するとしましょうどのその月に最初の注文をした多数の企業を得るには十分ではありません。これは木場やタイムリーで可能ですか?どのように私は弾性にデータを保存する必要がありますので、私はこの番号を取得することができますか?私はKibanaを使用しています。5.1.2

答えて

0

私はsequenceというインデックスのインデックスにプロパティータイプを追加しました。これは最初の注文の場合は1、2番目の場合は2番目となります。 ... マッピングはクールであり、あなたが値を計算することができます私はTimelionを選択し、この操作のためのしたがって、この

PUT test 
{ 
    "mappings": { 
    "orders": { 
     "properties": { 
     "devices": { 
      "type": "integer" 
     }, 
     "email": { 
      "type":"keyword" 
     }, 
     "company": { 
      "type":"keyword" 
     }, 
     "location": { 
      "type":"geo_point" 
     }, 
     "sequence":{ 
      "type":"integer" 
     }, 
     "time": { 
      "type":"date", 
      "format": "strict_date_optional_time||epoch_second" 

     } 
     } 
    } 
    } 
} 

のように見えます。新規ユーザーの前月の%の計算式は、このクエリはすべて1つのクエリは私だけ簡単にするために3枚でそれをカットしていることを...

(new users this month/cumulative users till previous month) 

この

.es(q=sequence:1,index=index,timefield=time,metric=cardinality:company) 
.divide(.es(index=index,timefield=time,metric=cardinality:company,offset=-1M) 
.cusum()).bars() 

ノートのようなtimelion式でこれを見ています読みやすさ。そして、ちょうど楽しみのためにバーを追加しました。

関連する問題