夜間(22:00-06:00)や昼間(08:00-17:00)などのように、時間帯を絞った毎日の検索をしたうえで各種グラフを作成を考えております。
毎日の全時間帯を集約したグラフはよく話題に上がりますが、毎日の特定時間帯だけをグラフにしたいです。
Cut&Try繰り返しても、うまくいかず。
皆様のお知恵を貸してください。
登録するIndexは一種類。logstash-yyyy-MM-dd などのように、時間ごとのindex作成はしない構成。
下記のmappingを登録。
"mappings" : {
"my_index" : {
"properties" : {
"Time" : {
"type" : "date",
"format" : "yyyy-MM-dd HH:mm:ss"
},
"count" : {
"type" : "integer"
}
Kibana上部の検索窓で、date型のTimeに対して、下記のようなqueryをするイメージで試しました。
Time:["* 22:00:00" TO "* 06:00:00"]
しかし、date型では、正規表現は受け付けてもらえないようなエラーメッセージとなっています。
(正規表現にフォーカス当てるため、右記のquery入力で確認。Time:/????/-02-28" 20:13:38")
Discover: Can only use regexp queries on keyword and text fields - not on [Time] which is of type [date]
date型データそのまま利用するのはあきらめて、下記試しましたがうまくいかない状況です。
・fileldsを用いて、string型の別データとして用意
→検索してもヒットせず。Management画面で確かにsearchable/aggregatableともにONになっていない
→Discover: "field" is a required parameter と表示されて、データが認識されない場合もあり
・"is_searchable": "true","is_aggregatable": "true"を追加。
→mapping登録時に、Elasticsearch Ver5.x第では非サポートのエラー。
・copy_toを使って、string型の別データとして用意
→検索してもヒットせず。Management画面で確かにsearchable/aggregatableともにONになっていない
環境
Kibana/Elasticsearch:5.3.0
ちなみに、logstash-yyyy-MM-dd-HH:mm:ss のように、グラフにしたい特定時間帯だけのindexを別に作成すれば、
できそうな気がしますが、できれば、今のindex一個構成のままで何とかできないかなと思っている次第です。