2015-11-23 2 views
0

Я хотел бы запросить что-то вроде этого:высчитывать извлечение узлов в пределах определенного времени диапазона

MATCH (u:User)-[r:PICK_UP]->(g:Grid) 
WHERE r.time:[16:00 TO 20:00] 
RETURN u.name 

Я прочитал о запросе числового диапазона Lucene, но я не знаю, что такое правильный синтаксис для моего запроса

Любые предложения? Спасибо!

ответ

1

Neo4j не поддерживает индексы свойств отношений. По этой причине вам следует подумать о сохранении времени как свойства на узле. Вы можете использовать индексный поддерживаются диапазон запрос:

MATCH (u:User)-[:INITIATED]->(e:Event)-[:PICK_UP]->(g:Grid) 
WHERE e.time > 1600 AND e.time < 2000 
RETURN u.name; 

Этих типов запросов числового диапазона поддерживается с помощью индекса, начиная с Neo4j версии 2.3. Обязательно создайте индекс для свойства времени: CREATE INDEX ON :Event(time)

+0

Спасибо @WilliamLyon, я собираюсь попробовать его. Но тогда, я должен хранить время, подобное 1600 вместо 16:00? – andreahg

+0

Для запроса числового диапазона используйте временную метку эпохи (например: '1448309765') или целое число, если вас интересует только час (например,' 1600') –

+0

Спасибо @WilliamLyon – andreahg

Смежные вопросы