При переиндексации в pythonasticsearch правильное сопоставление возвращается по запросу (/ _mapping? Pretty), но данные, которые были переиндексированы (и новые данные поступают сейчас), игнорируют объявленный тип ("тип": "float") и вводится в виде строки. Я заменил старый индекс новым индексом с правильным отображением и переиндексировал все старые данные. Старое отображение
"storeLocationID" : {
"type" : "text",
"norms" : false,
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"transactionAmount" : {
"type" : "float",
"norms" : false,
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"transactionID" : {
"type" : "text",
"norms" : false,
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
}
Новое отображение
"storeLocationID" : {
"type" : "text",
"norms" : false,
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"transactionAmount" : {
"type" : "float"
},
"transactionID" : {
"type" : "text",
"norms" : false,
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
Но данные в индексе все еще выглядят так:
"payload": {
"endTime": "2020-01-21T23:58:58-05:00",
"startTime": "2020-01-21T23:58:57-05:00",
"hasPriceOverride": false,
"registerID": "3",
"hasVoidedItem": false,
"storeLocationID": "1255",
"version": "1.1",
"siteId": "143654",
"cashierID": "9563749",
"hasNetworkAuthTender": false,
"transactionID": "3951",
"transactionType": "Sale",
"transactionAmount": "5",
"hasRestrictedItem": false
}