Указатель NULL
- это тот, который указывает на никуда. Когда вы разыскиваете указатель p
, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p
является нулевым указателем, местоположение, хранящееся в p
, является nowhere
, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception
.
В общем, это потому, что что-то не было правильно инициализировано.
Хотя у меня нет решения для добавления поддержки чисел в диапазоне 10 duodecillion +, я хотел бы отметить, что при использовании динамического отображения отправляемая строка цифр сохраняется как text
[117 ] и 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"
}
}
]
}