Можно ли как-то запросить дату в титане/гремлине? например найти все результаты за последние X дней
Любая помощь приветствуется.
Можно ли как-то запросить дату в титане/гремлине? например найти все результаты за последние X дней
Любая помощь приветствуется.
Лучший подход — просто сохранить дату как длинное значение и, возможно, проиндексировать такое поле на краю, чтобы вы могли воспользоваться преимуществами limit()
, interval
и т. д. См. эту вики-страницу Titan по теме:
https://github.com/thinkaurelius/titan/wiki/Vertex-Centric-Indices
Он сопоставляется с вашим конкретным запросом с примером Twitter, где индексируется time
. Вы можете найти результаты, основанные на time
, просто вычислив миллисекунды для «X дней» назад, а затем найдя все результаты, которые приходят после этого:
g.v(1).outE.has('time',T.gte, fiveDaysAgoInMs).inV
Обратите внимание, что начиная с Titan 0.4.1 вы также можете определить направленность индекса таким образом, чтобы самые новые элементы возвращались первыми (больше нет необходимости в обратном индексировании свойства):
Кроме того, если вы не возражаете против небольшой денормализации, вы также можете сохранить дату в виде сортируемого строкового значения (iso- например, 8601) в дополнение к значению Long. Это поможет вам легко увидеть, что такое дата, без дополнительного преобразования.