сохранение значения даты как «Long» вместо «Date» в индексе Elastic-Search - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть индекс Elastic-Search, в котором хранятся продукты с полем «createTime», которое обозначает, когда документ / продукт добавляется, в настоящее время я сохраняю «createTime» как «Long» вместо «Date», и в этом поле ясохраняя миллисекунды из эпохи, мой вопрос будет: сохранение «selectedTime» как «Long» вместо «Date» делает сортировку или любые такие операции медленными.

Версия ES: 2.4.1

1 Ответ

0 голосов
/ 13 февраля 2019

Да, Long быстрее , но пусть Elastic обрабатывает это .

Внутренне, поля с типом данных Date сохраняются как long .Ниже приводится выдержка из Эластичные документы :

Внутренне даты преобразуются в UTC (если указан часовой пояс) и сохраняются в виде длинного числа, представляющего миллисекунды с моментаthe-epoch

Сохранение даты в виде длинного типа данных требует дополнительной обработки на вашей стороне.Кроме того, вы теряете возможность просматривать поле даты как дату.Для простоты использования длинная дата не подходит.

Если вы используете тип данных Date, эластичный будет сохранять поле в своем инвертированном индексе как длинное значение.Тем не менее, он преобразует его в просматриваемый формат даты, прежде чем вернуть его вам.

Итак, просто используйте тип данных Date.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...