Както каза Питър, за да инспектирате имоти, трябва да използвате клаузата where. Шаблоните за съвпадение са за съвпадение на шаблони без проверка на свойствата. Можете обаче да използвате индекси, за да намерите възли, които да започнат, които отговарят на определен период от време, например.
Създадох пример за вас:
create
(_1 {city:"DC"}),
(_2 {city:"NY"}),
(_3 {city:"SF"}),
(_4 {city:"LA"}),
_1-[:flight {leave:1349431200, arrive:1349445600}]->_2,
_1-[:flight {leave:1349427600, arrive:1349442000}]->_2,
_1-[:flight {leave:1349424000, arrive:1349438400}]->_2,
_1-[:flight {leave:1349420400, arrive:1349434800}]->_2,
_1-[:flight {leave:1349416800, arrive:1349431200}]->_2,
_1-[:flight {leave:1349409600, arrive:1349424000}]->_2,
_2-[:flight {leave:1349431200, arrive:1349445600}]->_3,
_2-[:flight {leave:1349427600, arrive:1349442000}]->_3,
_2-[:flight {leave:1349424000, arrive:1349438400}]->_3,
_3-[:flight {leave:1349431200, arrive:1349445600}]->_4,
_3-[:flight {leave:1349427600, arrive:1349442000}]->_4,
_3-[:flight {leave:1349424000, arrive:1349438400}]->_4,
_3-[:flight {leave:1349438400, arrive:1349445600}]->_4,
_3-[:flight {leave:1349442000, arrive:1349449200}]->_4,
_3-[:flight {leave:1349445600, arrive:1349452800}]->_4;
Само за забавление, ето заявка, която показва всички полети, които съответстват на дестинациите (преди филтриране): http://console.neo4j.org/r/6ropic Трябва да има отрицателни времеви разлики навсякъде, за да бъде валидно пътуването.
Ето една заявка с филтриране на клауза where
:
start dc=node(1), la=node(4)
match trip=dc-[dcny]->ny-[nysf]->sf-[sfla]->la
where dcny.arrive < nysf.leave and nysf.arrive < sfla.leave
return dcny.arrive - nysf.leave, nysf.arrive - sfla.leave, dcny.arrive, nysf.leave, nysf.arrive, sfla.leave;
+-----------------------------------------------------------------------------------------------------------+
| dcny.arrive - nysf.leave | nysf.arrive - sfla.leave | dcny.arrive | nysf.leave | nysf.arrive | sfla.leave |
+-----------------------------------------------------------------------------------------------------------+
| -3600.0 | -3600.0 | 1349424000 | 1349427600 | 1349442000 | 1349445600 |
+-----------------------------------------------------------------------------------------------------------+
1 row
0 ms
http://console.neo4j.org/r/79qr9s
Малко по-сложно е, ако искате да опитате да го направите с пътища с променлива дължина, но за този случай на употреба вероятно не е краят на света да посочите най-много няколко прекъсвания.
Актуализация:
Мислех за това още малко - можете също така да изберете група отношения във вашата start
клауза, въз основа на индекс за часовете на пристигане и напускане. Ще ограничи много търсенето ви.
person
Eve Freeman
schedule
06.10.2012