Happy to help. If you want to chat in person, I live in Dresden, and am in Berlin on Sept. 30 for our Neo4j Meetup.
Cheers, Michael On Wed, Sep 17, 2014 at 9:44 AM, Sebastian Hennebrueder < [email protected]> wrote: > Hello Michael, > > I am stunned. I was already happy from the input of the first post. Thanks > a lot for spending the time to illustrate it in detail. I will need a day > to research it. > > Best Regards > > Sebastian > > On Tuesday, September 16, 2014 10:56:49 PM UTC+2, Michael Hunger wrote: >> >> I tried to put it together but have no realistic data to model it in a >> graph gist. >> Would be fun to load actual train stations, routes and reseverations with >> LOAD CSV into a graphgist though. >> >> http://gist.neo4j.org/?dropbox-14493611%2Ftrain-stops_reseverations.txt >> >> Hope it helps >> >> Michael >> >> On Tue, Sep 16, 2014 at 10:35 PM, Michael Hunger < >> [email protected]> wrote: >> >>> Hi Sebastian, >>> >>> I'm not sure I understand your model. >>> >>> The relationships between stations are one seat of segments of the same >>> train-trip ? >>> >>> I wonder why you didn't model the train with it's wagons and seats as >>> nodes and then connect the seat nodes with a RESERVED_FROM releationship to >>> the stations from which it is reseved? >>> >>> and the :Train also being connected to a :Trip or :Route which has a >>> start-time at the first station and connections between the stations as >>> :Stop >>> >>> (:Train {trainNo})<-[:IN_TRAIN]-(:Wagon {wagonNo})<-[:IN_WAGON]-(:Seat >>> {seatNo})-[:RESERVED_FROM]->(:Stop) >>> >>> then you should be able to find all :Seats which have no :RESERVED_FROM >>> relationship between the stations that you look at >>> >>> or probably just subtract those with a RESERVED_FROM relationship from >>> all seats in your train. >>> >>> REGARDING YOUR MODEL: >>> >>> Did you look into allShortestPaths for your path search? An unlimited >>> path search explodes the numbers of paths looked at >>> and your WITH statement in between you inhibit the planner to pull in >>> your conditions into the path matching. >>> >>> match p=(d:Station {name: >>> 'Berlin-stop-01'})-[r1:train]->()-[r:train*]->(a:Station >>> {name: 'Berlin-stop-07'}) >>> WHERE r1.reserved = false AND all(r2 in r WHERE r2.reseved = false and >>> r2.seat = r1.seat and r2.trainnumber = r1.trainnumber) >>> >>> perhaps it even makes sense to split up the match. >>> >>> On Tue, Sep 16, 2014 at 10:01 PM, Sebastian Hennebrueder < >>> [email protected]> wrote: >>> >>>> Hi all. >>>> >>>> My data presents seats in trains, which can be booked. I am struggling >>>> to get a search for a bookable seat reasonable fast. >>>> >>>> Data sample: >>>> >>>> create (source:Station {name: 'Berlin-stop-01'}), (target:Station >>>> {name: 'Berlin-stop-02'}), (source)-[:train {trainnumber: "abc", seat: "1", >>>> reserved: false}]->(target) >>>> >>>> I am using the following data scenario: >>>> >>>> 50 stops, 50 seats, 10 different train numbers >>>> >>>> For every seat and train number there is a relation between two >>>> stations. >>>> >>>> The query I use is: >>>> >>>> match p=(d:Station {name: 'Berlin-stop-01'})-[r:train*]->(a:Station >>>> {name: 'Berlin-stop-07'}) >>>> with head(relationships(p)) as r1,p where r1.reserved = false and >>>> all(r2 in relationships(p) where r2.seat=r1. seat and r2.trainnumber = >>>> r1. trainnumber) >>>> return r1 as `r` limit 1 >>>> >>>> With longer distances between the stops, the database becomes >>>> unresponsive. I tried to use start to fix the destination and arrival but >>>> did not get any major improvements. >>>> >>>> I would appreciate any help. >>>> >>>> Best Regards >>>> >>>> Sebastian >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Neo4j" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> >> -- > You received this message because you are subscribed to the Google Groups > "Neo4j" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Neo4j" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
