hello,
I have developed a java springboot batch that collect data from middleware logs and insert it to elastic index, the index is created by the batch with some fields that have date type (datein, dateout...).
After upgrading from ELK 6.4.1 and 7.8.0, the "date" type fields became "text" type in kibana so I can't filter these fields by date.
How can I get back the date fields so I can filter by date in kibana, please.
Here's the code creation of the index in java:
public void createIndexProxy(String typeLog) throws InterruptedException,
ExecutionException, IOException {
LOG.info("############ création de l'index: " + typeLog);
client.admin().indices().create(new CreateIndexRequest(typeLog))
.actionGet();
CreateIndexRequest request = new CreateIndexRequest(typeLog);
request.settings(Settings.builder()
.loadFromSource(Strings.toString(
jsonBuilder().prettyPrint().startObject()
.startObject(typeLog).startObject("properties")
.startObject("service").field("type", "keyword").field("index", "true").endObject()
.startObject("uc").field("type", "text").endObject()
.startObject("thread").field("type", "text").endObject()
.startObject("adresseIp").field("type", "text").endObject()
.startObject("dateIn").field("type", "date").field("format", "dd/MM/yyyy HH:mm:ss").endObject()
.startObject("dateOut").field("type", "date").field("format", "dd/MM/yyyy HH:mm:ss").endObject()
.startObject("requestTime").field("type", "integer").endObject()
.startObject("fluxIn").field("type", "text").endObject()
.startObject("fluxOut").field("type", "text").endObject()
.startObject("exception").field("type", "text").endObject()
.startObject("serviceTime").field("type", "integer").endObject()
.startObject("serviceResponseLength").field("type", "integer").endObject()
.startObject("timestamp").field("type", "long").endObject()
.startObject("synchStatus").field("type", "text").field("index", "true").endObject()
.startObject("utilisateur").field("type", "text").endObject()
.endObject().endObject().endObject()), XContentType.JSON)
);
ActionFuture<CreateIndexResponse> actionFuture = client.admin().indices().create(request);
LOG.info("############ l'index " + typeLog + " a été créé");
}
thanks for your help.