Сериализация long типа

27 views
Skip to first unread message

Дмитрий Белоус

unread,
Apr 14, 2015, 3:26:25 AM4/14/15
to elastics...@googlegroups.com
Возникли проблемы с сериализацией long.
Если на индексацию подавать числа длиной меньше, чем 17 знаков, то всё работает,
иначе числа обрезаются, как если бы они переводились в double, а потом обратно в long.
P.S. Используемая версия эластика: 1.4.3.

Примеры:
PUT twitter/tweet/testid
{
    "id" : 12345678901234567
}

GET twitter/tweet/testid

Ответ:
{
   "_index": "twitter",
   "_type": "tweet",
   "_id": "testid",
   "_version": 1,
   "found": true,
   "_source": {
      "id": 12345678901234568
   }
}

----------------------------------------------------

PUT twitter/tweet/testid
{
    "id" : 123456789012345678
}

GET twitter/tweet/testid

Ответ:
{
   "_index": "twitter",
   "_type": "tweet",
   "_id": "testid",
   "_version": 1,
   "found": true,
   "_source": {
      "id": 123456789012345680
   }
}

----------------------------------------------------

GET twitter/tweet/_mapping

Ответ:
{
   "twitter": {
      "mappings": {
         "tweet": {
            "properties": {
               "id": {
                  "type": "long"
               }
            }
         }
      }
   }
}

Есть ли возможность этого избежать?

Igor Motov

unread,
Apr 15, 2015, 4:04:48 AM4/15/15
to elastics...@googlegroups.com
Проблема в Sense а не в elasticsearch. Если запустить curl скрипт - то все будет работать как надо

curl -XDELETE "localhost:9200/test?pretty"
curl -XPUT "localhost:9200/test?pretty" -d '{
"mappings": {
"doc": {
"properties": {
"id": {
"type": "long"
}
}
}
}
}'
curl -XPUT "localhost:9200/test/doc/1?pretty" -d '{
"id": 123456789012345678
}'

curl -XGET "localhost:9200/test/doc/1?pretty"

Дмитрий Белоус

unread,
Apr 15, 2015, 5:02:05 AM4/15/15
to elastics...@googlegroups.com
Спасибо! Да, действительно так и оказалось.
Даже если в индексе длинные числа записаны правильно, sense отображает их неправильно.


среда, 15 апреля 2015 г., 11:04:48 UTC+3 пользователь Igor Motov написал:
Reply all
Reply to author
Forward
0 new messages