0
我正在使用ES Jest。我可以搜索並獲得回覆。但是當我用Date
屬性進行序列化時,我在序列化後得到了null
響應。Elasticsearch JEST日期序列化java
以下是我的ES文檔索引和搜索結果的類。
public class IndexDocument {
public long id;
@JsonSerialize(using = JsonDateSerializer.class)
public Date Date1;
@JsonSerialize(using = JsonDateSerializer.class)
public Date Date2;
}
我有以下代碼爲日期序列從ES
public class JsonDateSerializer extends JsonSerializer<Date> {
private final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-ddTHH:mm:ss.SSSZ");
@Override
public void serialize(Date date, JsonGenerator gen, SerializerProvider provider)
throws IOException, JsonProcessingException {
String formattedDate = dateFormat.format(date);
gen.writeString(formattedDate);
}
}
響應:
"hits" : [{
"_index" : "myindex",
"_type" : "mytype",
"_id" : "3",
"_score" : 1.3294203,
"_source" : {
"Date1" : "2016-11-24T14:39:08.000Z",
"id" : 1,
"Date2" : "1900-01-01T00:00:00.000Z"
}
}
]
我的序列化代碼:
JestResult result = client.execute(search); // i can see the response here
response = result.getSourceAsObjectList(IndexDocument.class);
系列化後,我得到了response = null
注意:如果我從indexDocument刪除日期屬性,我可以看到序列化的響應但日期屬性它不起作用。什麼地方出了錯?
我想上面的例子,它工作正常。你能發佈你的映射嗎?當索引上面的例子時,Mine是自動生成的,但你可能有不同的東西。我使用傑克遜2.4.6 – alkis