Хотя у меня нет решения для добавления поддержки чисел в диапазоне 10 duodecillion +, я хотел отметить, что при использовании динамического отображения отправляемая строка цифр сохраняется как text
* 1002.* и keyword
тип данных.Таким образом, если вы хотите выполнить сортировку или фильтрацию, вы можете работать с полем keyword
.
Например:
PUT random_big
POST random_big/_doc
{
"num": "10000000000000000000000000000000000000000"
}
POST random_big/_doc
{
"num": "10000000000000000000000000000000000000001"
}
POST random_big/_doc
{
"num": "10000000000000000001000000000000000000000"
}
Проверка соответствия (GET random_big/_mapping
) показывает:
{
"random_big" : {
"mappings" : {
"_doc" : {
"properties" : {
"num" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
}
}
}
}
}
}
И сортировка может быть выполнена следующим образом:
GET random_big/_search
{
"sort": [
{
"num.keyword": {
"order": "asc"
}
}
]
}