при попытке сортировки текстового поля вasticsearch 7+ выдает ошибку, что явно поле данных должно быть установлено в true. Но это связано с высокой ценой дополнительного потребления памяти. В качестве обходного пути я решил использовать нормализатор, который будет хранить текстовое поле в качестве ключевого слова. Ниже приведен нормализатор и эластичный запрос, который используется.
//field mapping: {
"filterable_text": {
"match": "S_*",
"mapping": {
"copy_to": "_text",
"fields": {
"normalize": {
"type": "keyword",
"normalizer": "my_normalizer"
},
"keyword": {
"type": "keyword"
}
},
"type": "text",
"fielddata": true
}
}
}
//normalizer: "normalizer": {
"my_normalizer": {
"type": "custom",
"char_filter": [],
"filter": ["lowercase", "asciifolding"]
}
}
//query: {
"track_total_hits":false,
"query": {"wildcard": {"doc.S_gName.normalize": "Ami*"}},
"from" : 0,
"size" : 2,
"sort" : [{
"doc.S_gName" : {
"order" : "desc"
}
}]
}
Но все равно я получаю ту же ошибку. Любое предложение?