23

Napotkałem problem, gdy chcę dodać jeden ciąg datetime do Elasticsearch.Format daty sklepu w elasticsearch

Dokument jest poniżej:

{"LastUpdate" : "2013/07/24 00:00:00"} 

Dokument ten podniósł się błąd, który jest "NumberFormatException" [For input string: \"20130724 00:00:00\"]

wiem, że mogę użyć formatu daty w Elasticsearch, ale nie wiem, jak korzystać nawet Przeczytałem dokument na stronie internetowej.

{"LastUpdate": { 
    "properties": { 
     "type": "date", 
     "format": "yyyy-MM-dd"} 
    } 
} 

i

{"LastUpdate": { 
    "type": "date", 
    "format": "yyyy-MM-dd" 
    } 
} 

są błędne.

Jak przenieść ciąg datetime do formatu daty w Elasticsearch?

Jak zapisać ciąg datetime bezpośrednio w Elasticsearch?

+1

można użyć podwójnego potoku do obsługi wielu formatów. na przykład "yyyMMdd || rrrr-MM-dd" –

Odpowiedz

27

Jesteś prawie na miejscu. Ustaw mapowanie tak:

{"LastUpdate": { 
    "type" : "date", 
    "format" : "yyyy/MM/dd HH:mm:ss"} 
} 

Czytaj docs na the date mapping and its options i the date format parameter (jedna z opcji do mapowania data).

Powodzenia!

+0

W jaki sposób "format" zna łańcuch datetime to "2013/07/24 00:00:00"? A może teraz użyje datetime? Zmieniam na "LastUpdate": {"type": "date", "format": "rrrr/MM/dd HH: mm: ss"}, podniósł kolejny błąd, który jest "ElasticSearchIllegalArgumentException [unknown property [type]]" –

+0

To jest mapowanie, które dałem. "Format": "rrrr/MM/dd GG: mm: ss" "mówi elasticsearch, aby akceptował daty w tym formacie. – ramseykhalaf

+0

W jaki sposób mogę popchnąć/pozwolić elastycznym poszukiwaniom wiedzieć, jakie to dane? –