home » search tags
Die Suche tag = mapping ergab 1 Treffer:

April
29
Logstash hat die nette Eigenschaft automatisch das Feld @timestamp beim schreiben in elasticsearch zu erstellen. Dieses bietet sich immer wunderbar zum filtern an.

Wenn man nun aber eigene Daten in elasticsearch ablegen möchte ist das Feld @timestamp bzw. _timestamp nicht unbedingt vorhanden... was tun?

Gehen wir von folgendem Beispiel aus

{
"userID" : "0815" ,
"itemCount" : "1" ,
"mydate" : "2014-04-28 11:30:21" ,
"data" : {"OS" : "Windows7", "version" : "2013.12.0.3"}
}



zwar finden wir hier eine Feld mydate welches aber nur als string übergeben wird, somit ist es nicht möglich Abfragen nach dem Muster zeige Daten der letzten x Tage an zu realisieren.

Doch elasticsearch bietet eine Möglichkeit des mappings an.

Möchte man automatisch einen passenden timestamp erstellen, sobald die Daten in elasticsearch abgelegt werden, hilft folgendes mapping

"_timestamp" : {
"enabled" : true,
"store" : "yes"
}



Möchte man hingegen _timestamp anhand eines bestehenden Feldes generieren (in diesem Falle anhand von mydate) kann das folgende mapping genutzt werden

"_timestamp" : {
"enabled" : true,
"store" : "yes",
"path" : "mydate",
"format" : "yyyy-MM-dd HH:mm:ss"
}