Elasticsearch возвращает сохраненные поля в виде строки

У меня есть поле с именем mydate со следующим отображением в ES 5.4:

{
  "type": "date",
  "store" : true,
  "format" : "epoch_millis"
}

Теперь со следующим запросом:

POST foo/bar/_search
{
  "query":{ "match_all": {} },
  "stored_fields": [ "mydate" ]
}

ЕС возвращает:

{
  "took": 7,
  "timed_out": false,
  "_shards": {...},
  "hits": {
    "total": 1,
    "max_score": 1,
    "hits": [
      {
        "_index": "foo",
        "_type": "bar",
        "_id": "1162256",
        "_score": 1,
        "fields": {
          "mydate": [
            "1504540873381"
          ]
        }
      }
    ]
  }
}

Мой вопрос в том, почему значение поля возвращается в виде строки, а не длинной. Когда я делаю запрос, используя _source, это действительно длинное значение.


person Rad    schedule 05.09.2017    source источник
comment
Интересный вопрос. Я посмотрел на источники, пытаясь понять это. Он использует что-то под названием FieldVisitor, у которого есть методы для intValue() и stringValue() и тому подобное, но нет поля даты. Можете ли вы попробовать использовать, если это происходит и с целочисленным полем. Возможно, это ошибка. Источник: github.com/elastic/elasticsearch/blob/   -  person aclowkay    schedule 05.09.2017
comment
Этого не происходит с целочисленными полями. Должен ли я опубликовать это как проблему github?   -  person Rad    schedule 05.09.2017
comment
Я думаю так. Хотя я не соавтор.   -  person aclowkay    schedule 05.09.2017


Ответы (1)


Не совсем ответ, но, по крайней мере, объясняет, почему это происходит: https://github.com/elastic/elasticsearch/issues/26504

person Rad    schedule 05.09.2017