The mapping for fields in ES 2.3.3 was like:
fieldname {
type: "string",
fields: {
raw: {
type: "string",
index: "not_analyzed"
}
}
}
Now after upgrade to 5.2.2, it has become like:
fieldname: {
type: "string",
fields: {
raw: {
type: "string",
index: "not_analyzed",
fielddata: false
}
}
}
fielddata:false doesn't seem to be a valid mapping. Valid mapping to disable fielddata would be "fielddata":{"format":"disabled"}.
I do see fielddata being used for fieldname.raw, however reason for that could be the ordinals' memory consumption which is shown in fielddata (https://github.com/elastic/elasticsearch/issues/17472).
I have been wondering if there is any specific reason for this change in mapping on upgrade, and what can be the possible implications on performance (if any).