Re: [Neo4j] simple traverse of tree
And how it is possible to traverse parallel edges? I spent an hour trying how to do it... I have some node and this node can be connected with other node with more incoming edges. And I'm not able to traverse all this edges... IteratorRelationship rels = Traversal.description().breadthFirst().evaluator(Evaluators.excludeStartPosition()).relationships(RelationshipTypes.TICKET_WORKER, Direction.INCOMING).traverse(workerNode).relationships().iterator(); This traverse me only unique connections (not parallel)... Dne 6.4.2011 23:49, Mattias Persson napsal(a): Just as a note (and as the javadoc says) you can have multiple evaluators in a traversal description. 2011/4/6 Michael Hungermichael.hun...@neotechnology.com: sure ... .evaluator(Evalutators.excludeStartPosition()) ... Cheers Michael Am 06.04.2011 um 20:15 schrieb Matěj Plch: I had there an error... My fault. Your code is working fantastic. Thank you so much. I hope the last question: is it possible to add some parameter to exclude the start node? Dne 6.4.2011 09:13, Mattias Persson napsal(a): I'm not fully aware of your domain layout, but maybe add this: .uniqueness( Uniqueness.RELATIONSHIP_GLOBAL ) to your traversal description. The default (NODE_GLOBAL) may end up hiding some of your nodes depending on your graph layout. 2011/4/5 Matěj Plchplchm...@fit.cvut.cz Well so lastRelationship() isnt the right one method I am looking for and I have to look for highest id manually. But I have problem that if I traverse in the way like Michael suggested: IteratorNodei = Traversal.description().relationships(RelationshipTypes.TICKET_QUEUE, Direction.BOTH).relationships(RelationshipTypes.TICKET_STATUS, Direction.BOTH). relationships(RelationshipTypes.TICKET_TIMETAKEN, Direction.BOTH). traverse(ticketNode).nodes().iterator(); The iterator gives me only 6 ancestors. But in Neoclipse I can see much more ancestor nodes which is right. Why this traverse gives me bad result? I need all nodes which are directly connected thought Relatioshiptypes TICKET_STATUS,TICKET_TIMETAKEN,TICKET_QUEUE with ticketNode... Dne 4.4.2011 13:59, Mattias Persson napsal(a): 2011/4/4 Matěj Plchplchm...@fit.cvut.cz Is it possible to use *Path.lastRelationship*() ? How does it take last Relationship? According to id, or how the graph is traversed? It returns the last relationships in the current path, i.e. where the traverser is a.t.m. So it already has a reference to it and just returns it. Dne 26.3.2011 19:35, Michael Hunger napsal(a): Sure, if the tree from your root node is just a cluster that is not connected anywhere else (with those 3 relationship-types) it should be as simple as. (Just written from my head, so please check the correct syntax). Traversal.description().relationship(T1,OUTGOING).relationship(T2,OUTGOING).relationship(T3,OUTGOING).traverse(rootNode); That returns an iterator of all paths going from your root node. You can limit the nodes with .uniqueness() and then add the path's (path.nodes()) to a set to collect all nodes. For getting the one with the highest id, you can use java.util.Collections.max(collection, new ComparatorNode(){}); How big is your tree? Something like that should be in Graph-Algo perhaps as subgraph or tree. HTH Michael Am 26.03.2011 um 19:26 schrieb Matěj Plch: Thank you for so fast answer. I will look at it. I have milestone tomorrow so dont have a lot of time=) and have never worked with Groovy. Well so there isnt any simple method how to do it in classic neo4j Java API? Dne 26.3.2011 19:16, Saikat Kanjilal napsal(a): You can do all of these things using gremlin and pipes. Check out github for more details. Sent from my iPhone On Mar 26, 2011, at 11:13 AM, Matěj Plchplchm...@fit.cvut.cz wrote: Hi, I have some graph and, part of it is a tree. I simple get root of this tree through id. How to simple tranverse only tree under this root node? From root goes three unique type relationship to three unique group type nodes. Under this three nodes are a lot of nodes. And I need to write a method which gives me all nodes under that group node. Second question is if its possible ho to get from this group noe with the highest id (last added). Matěj Plch ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list
Re: [Neo4j] simple traverse of tree
Sorry for the post. .uniqueness(Uniqueness.NONE) made the trick. Dne 9.4.2011 13:19, Matěj Plch napsal(a): And how it is possible to traverse parallel edges? I spent an hour trying how to do it... I have some node and this node can be connected with other node with more incoming edges. And I'm not able to traverse all this edges... IteratorRelationship rels = Traversal.description().breadthFirst().evaluator(Evaluators.excludeStartPosition()).relationships(RelationshipTypes.TICKET_WORKER, Direction.INCOMING).traverse(workerNode).relationships().iterator(); This traverse me only unique connections (not parallel)... Dne 6.4.2011 23:49, Mattias Persson napsal(a): Just as a note (and as the javadoc says) you can have multiple evaluators in a traversal description. 2011/4/6 Michael Hungermichael.hun...@neotechnology.com: sure ... .evaluator(Evalutators.excludeStartPosition()) ... Cheers Michael Am 06.04.2011 um 20:15 schrieb Matěj Plch: I had there an error... My fault. Your code is working fantastic. Thank you so much. I hope the last question: is it possible to add some parameter to exclude the start node? Dne 6.4.2011 09:13, Mattias Persson napsal(a): I'm not fully aware of your domain layout, but maybe add this: .uniqueness( Uniqueness.RELATIONSHIP_GLOBAL ) to your traversal description. The default (NODE_GLOBAL) may end up hiding some of your nodes depending on your graph layout. 2011/4/5 Matěj Plchplchm...@fit.cvut.cz Well so lastRelationship() isnt the right one method I am looking for and I have to look for highest id manually. But I have problem that if I traverse in the way like Michael suggested: IteratorNode i = Traversal.description().relationships(RelationshipTypes.TICKET_QUEUE, Direction.BOTH).relationships(RelationshipTypes.TICKET_STATUS, Direction.BOTH). relationships(RelationshipTypes.TICKET_TIMETAKEN, Direction.BOTH). traverse(ticketNode).nodes().iterator(); The iterator gives me only 6 ancestors. But in Neoclipse I can see much more ancestor nodes which is right. Why this traverse gives me bad result? I need all nodes which are directly connected thought Relatioshiptypes TICKET_STATUS,TICKET_TIMETAKEN,TICKET_QUEUE with ticketNode... Dne 4.4.2011 13:59, Mattias Persson napsal(a): 2011/4/4 Matěj Plchplchm...@fit.cvut.cz Is it possible to use *Path.lastRelationship*() ? How does it take last Relationship? According to id, or how the graph is traversed? It returns the last relationships in the current path, i.e. where the traverser is a.t.m. So it already has a reference to it and just returns it. Dne 26.3.2011 19:35, Michael Hunger napsal(a): Sure, if the tree from your root node is just a cluster that is not connected anywhere else (with those 3 relationship-types) it should be as simple as. (Just written from my head, so please check the correct syntax). Traversal.description().relationship(T1,OUTGOING).relationship(T2,OUTGOING).relationship(T3,OUTGOING).traverse(rootNode); That returns an iterator of all paths going from your root node. You can limit the nodes with .uniqueness() and then add the path's (path.nodes()) to a set to collect all nodes. For getting the one with the highest id, you can use java.util.Collections.max(collection, new ComparatorNode(){}); How big is your tree? Something like that should be in Graph-Algo perhaps as subgraph or tree. HTH Michael Am 26.03.2011 um 19:26 schrieb Matěj Plch: Thank you for so fast answer. I will look at it. I have milestone tomorrow so dont have a lot of time=) and have never worked with Groovy. Well so there isnt any simple method how to do it in classic neo4j Java API? Dne 26.3.2011 19:16, Saikat Kanjilal napsal(a): You can do all of these things using gremlin and pipes. Check out github for more details. Sent from my iPhone On Mar 26, 2011, at 11:13 AM, Matěj Plchplchm...@fit.cvut.cz wrote: Hi, I have some graph and, part of it is a tree. I simple get root of this tree through id. How to simple tranverse only tree under this root node? From root goes three unique type relationship to three unique group type nodes. Under this three nodes are a lot of nodes. And I need to write a method which gives me all nodes under that group node. Second question is if its possible ho to get from this group noe with the highest id (last added). Matěj Plch ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org
Re: [Neo4j] simple traverse of tree
If you mean to traverse paths with same nodes, but different relationships then RELATIONSHIP_GLOBAL would suffice. NONE is a bit dangerous in that you'll have to manage uniqueness yourself otherwise your traversal may never end. 2011/4/9 Matěj Plch plchm...@fit.cvut.cz: And how it is possible to traverse parallel edges? I spent an hour trying how to do it... I have some node and this node can be connected with other node with more incoming edges. And I'm not able to traverse all this edges... IteratorRelationship rels = Traversal.description().breadthFirst().evaluator(Evaluators.excludeStartPosition()).relationships(RelationshipTypes.TICKET_WORKER, Direction.INCOMING).traverse(workerNode).relationships().iterator(); This traverse me only unique connections (not parallel)... Dne 6.4.2011 23:49, Mattias Persson napsal(a): Just as a note (and as the javadoc says) you can have multiple evaluators in a traversal description. 2011/4/6 Michael Hungermichael.hun...@neotechnology.com: sure ... .evaluator(Evalutators.excludeStartPosition()) ... Cheers Michael Am 06.04.2011 um 20:15 schrieb Matěj Plch: I had there an error... My fault. Your code is working fantastic. Thank you so much. I hope the last question: is it possible to add some parameter to exclude the start node? Dne 6.4.2011 09:13, Mattias Persson napsal(a): I'm not fully aware of your domain layout, but maybe add this: .uniqueness( Uniqueness.RELATIONSHIP_GLOBAL ) to your traversal description. The default (NODE_GLOBAL) may end up hiding some of your nodes depending on your graph layout. 2011/4/5 Matěj Plchplchm...@fit.cvut.cz Well so lastRelationship() isnt the right one method I am looking for and I have to look for highest id manually. But I have problem that if I traverse in the way like Michael suggested: IteratorNode i = Traversal.description().relationships(RelationshipTypes.TICKET_QUEUE, Direction.BOTH).relationships(RelationshipTypes.TICKET_STATUS, Direction.BOTH). relationships(RelationshipTypes.TICKET_TIMETAKEN, Direction.BOTH). traverse(ticketNode).nodes().iterator(); The iterator gives me only 6 ancestors. But in Neoclipse I can see much more ancestor nodes which is right. Why this traverse gives me bad result? I need all nodes which are directly connected thought Relatioshiptypes TICKET_STATUS,TICKET_TIMETAKEN,TICKET_QUEUE with ticketNode... Dne 4.4.2011 13:59, Mattias Persson napsal(a): 2011/4/4 Matěj Plchplchm...@fit.cvut.cz Is it possible to use *Path.lastRelationship*() ? How does it take last Relationship? According to id, or how the graph is traversed? It returns the last relationships in the current path, i.e. where the traverser is a.t.m. So it already has a reference to it and just returns it. Dne 26.3.2011 19:35, Michael Hunger napsal(a): Sure, if the tree from your root node is just a cluster that is not connected anywhere else (with those 3 relationship-types) it should be as simple as. (Just written from my head, so please check the correct syntax). Traversal.description().relationship(T1,OUTGOING).relationship(T2,OUTGOING).relationship(T3,OUTGOING).traverse(rootNode); That returns an iterator of all paths going from your root node. You can limit the nodes with .uniqueness() and then add the path's (path.nodes()) to a set to collect all nodes. For getting the one with the highest id, you can use java.util.Collections.max(collection, new ComparatorNode(){}); How big is your tree? Something like that should be in Graph-Algo perhaps as subgraph or tree. HTH Michael Am 26.03.2011 um 19:26 schrieb Matěj Plch: Thank you for so fast answer. I will look at it. I have milestone tomorrow so dont have a lot of time=) and have never worked with Groovy. Well so there isnt any simple method how to do it in classic neo4j Java API? Dne 26.3.2011 19:16, Saikat Kanjilal napsal(a): You can do all of these things using gremlin and pipes. Check out github for more details. Sent from my iPhone On Mar 26, 2011, at 11:13 AM, Matěj Plchplchm...@fit.cvut.cz wrote: Hi, I have some graph and, part of it is a tree. I simple get root of this tree through id. How to simple tranverse only tree under this root node? From root goes three unique type relationship to three unique group type nodes. Under this three nodes are a lot of nodes. And I need to write a method which gives me all nodes under that group node. Second question is if its possible ho to get from this group noe with the highest id (last added). Matěj Plch ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list
Re: [Neo4j] simple traverse of tree
I'm not fully aware of your domain layout, but maybe add this: .uniqueness( Uniqueness.RELATIONSHIP_GLOBAL ) to your traversal description. The default (NODE_GLOBAL) may end up hiding some of your nodes depending on your graph layout. 2011/4/5 Matěj Plch plchm...@fit.cvut.cz Well so lastRelationship() isnt the right one method I am looking for and I have to look for highest id manually. But I have problem that if I traverse in the way like Michael suggested: IteratorNode i = Traversal.description().relationships(RelationshipTypes.TICKET_QUEUE, Direction.BOTH).relationships(RelationshipTypes.TICKET_STATUS, Direction.BOTH). relationships(RelationshipTypes.TICKET_TIMETAKEN, Direction.BOTH). traverse(ticketNode).nodes().iterator(); The iterator gives me only 6 ancestors. But in Neoclipse I can see much more ancestor nodes which is right. Why this traverse gives me bad result? I need all nodes which are directly connected thought Relatioshiptypes TICKET_STATUS,TICKET_TIMETAKEN,TICKET_QUEUE with ticketNode... Dne 4.4.2011 13:59, Mattias Persson napsal(a): 2011/4/4 Matěj Plchplchm...@fit.cvut.cz Is it possible to use *Path.lastRelationship*() ? How does it take last Relationship? According to id, or how the graph is traversed? It returns the last relationships in the current path, i.e. where the traverser is a.t.m. So it already has a reference to it and just returns it. Dne 26.3.2011 19:35, Michael Hunger napsal(a): Sure, if the tree from your root node is just a cluster that is not connected anywhere else (with those 3 relationship-types) it should be as simple as. (Just written from my head, so please check the correct syntax). Traversal.description().relationship(T1,OUTGOING).relationship(T2,OUTGOING).relationship(T3,OUTGOING).traverse(rootNode); That returns an iterator of all paths going from your root node. You can limit the nodes with .uniqueness() and then add the path's (path.nodes()) to a set to collect all nodes. For getting the one with the highest id, you can use java.util.Collections.max(collection, new ComparatorNode(){}); How big is your tree? Something like that should be in Graph-Algo perhaps as subgraph or tree. HTH Michael Am 26.03.2011 um 19:26 schrieb Matěj Plch: Thank you for so fast answer. I will look at it. I have milestone tomorrow so dont have a lot of time=) and have never worked with Groovy. Well so there isnt any simple method how to do it in classic neo4j Java API? Dne 26.3.2011 19:16, Saikat Kanjilal napsal(a): You can do all of these things using gremlin and pipes. Check out github for more details. Sent from my iPhone On Mar 26, 2011, at 11:13 AM, Matěj Plchplchm...@fit.cvut.cz wrote: Hi, I have some graph and, part of it is a tree. I simple get root of this tree through id. How to simple tranverse only tree under this root node? From root goes three unique type relationship to three unique group type nodes. Under this three nodes are a lot of nodes. And I need to write a method which gives me all nodes under that group node. Second question is if its possible ho to get from this group noe with the highest id (last added). Matěj Plch ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Mattias Persson, [matt...@neotechnology.com] Hacker, Neo Technology www.neotechnology.com ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] simple traverse of tree
I had there an error... My fault. Your code is working fantastic. Thank you so much. I hope the last question: is it possible to add some parameter to exclude the start node? Dne 6.4.2011 09:13, Mattias Persson napsal(a): I'm not fully aware of your domain layout, but maybe add this: .uniqueness( Uniqueness.RELATIONSHIP_GLOBAL ) to your traversal description. The default (NODE_GLOBAL) may end up hiding some of your nodes depending on your graph layout. 2011/4/5 Matěj Plchplchm...@fit.cvut.cz Well so lastRelationship() isnt the right one method I am looking for and I have to look for highest id manually. But I have problem that if I traverse in the way like Michael suggested: IteratorNode i = Traversal.description().relationships(RelationshipTypes.TICKET_QUEUE, Direction.BOTH).relationships(RelationshipTypes.TICKET_STATUS, Direction.BOTH). relationships(RelationshipTypes.TICKET_TIMETAKEN, Direction.BOTH). traverse(ticketNode).nodes().iterator(); The iterator gives me only 6 ancestors. But in Neoclipse I can see much more ancestor nodes which is right. Why this traverse gives me bad result? I need all nodes which are directly connected thought Relatioshiptypes TICKET_STATUS,TICKET_TIMETAKEN,TICKET_QUEUE with ticketNode... Dne 4.4.2011 13:59, Mattias Persson napsal(a): 2011/4/4 Matěj Plchplchm...@fit.cvut.cz Is it possible to use *Path.lastRelationship*() ? How does it take last Relationship? According to id, or how the graph is traversed? It returns the last relationships in the current path, i.e. where the traverser is a.t.m. So it already has a reference to it and just returns it. Dne 26.3.2011 19:35, Michael Hunger napsal(a): Sure, if the tree from your root node is just a cluster that is not connected anywhere else (with those 3 relationship-types) it should be as simple as. (Just written from my head, so please check the correct syntax). Traversal.description().relationship(T1,OUTGOING).relationship(T2,OUTGOING).relationship(T3,OUTGOING).traverse(rootNode); That returns an iterator of all paths going from your root node. You can limit the nodes with .uniqueness() and then add the path's (path.nodes()) to a set to collect all nodes. For getting the one with the highest id, you can use java.util.Collections.max(collection, new ComparatorNode(){}); How big is your tree? Something like that should be in Graph-Algo perhaps as subgraph or tree. HTH Michael Am 26.03.2011 um 19:26 schrieb Matěj Plch: Thank you for so fast answer. I will look at it. I have milestone tomorrow so dont have a lot of time=) and have never worked with Groovy. Well so there isnt any simple method how to do it in classic neo4j Java API? Dne 26.3.2011 19:16, Saikat Kanjilal napsal(a): You can do all of these things using gremlin and pipes. Check out github for more details. Sent from my iPhone On Mar 26, 2011, at 11:13 AM, Matěj Plchplchm...@fit.cvut.cz wrote: Hi, I have some graph and, part of it is a tree. I simple get root of this tree through id. How to simple tranverse only tree under this root node? From root goes three unique type relationship to three unique group type nodes. Under this three nodes are a lot of nodes. And I need to write a method which gives me all nodes under that group node. Second question is if its possible ho to get from this group noe with the highest id (last added). Matěj Plch ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] simple traverse of tree
sure ... .evaluator(Evalutators.excludeStartPosition()) ... Cheers Michael Am 06.04.2011 um 20:15 schrieb Matěj Plch: I had there an error... My fault. Your code is working fantastic. Thank you so much. I hope the last question: is it possible to add some parameter to exclude the start node? Dne 6.4.2011 09:13, Mattias Persson napsal(a): I'm not fully aware of your domain layout, but maybe add this: .uniqueness( Uniqueness.RELATIONSHIP_GLOBAL ) to your traversal description. The default (NODE_GLOBAL) may end up hiding some of your nodes depending on your graph layout. 2011/4/5 Matěj Plchplchm...@fit.cvut.cz Well so lastRelationship() isnt the right one method I am looking for and I have to look for highest id manually. But I have problem that if I traverse in the way like Michael suggested: IteratorNode i = Traversal.description().relationships(RelationshipTypes.TICKET_QUEUE, Direction.BOTH).relationships(RelationshipTypes.TICKET_STATUS, Direction.BOTH). relationships(RelationshipTypes.TICKET_TIMETAKEN, Direction.BOTH). traverse(ticketNode).nodes().iterator(); The iterator gives me only 6 ancestors. But in Neoclipse I can see much more ancestor nodes which is right. Why this traverse gives me bad result? I need all nodes which are directly connected thought Relatioshiptypes TICKET_STATUS,TICKET_TIMETAKEN,TICKET_QUEUE with ticketNode... Dne 4.4.2011 13:59, Mattias Persson napsal(a): 2011/4/4 Matěj Plchplchm...@fit.cvut.cz Is it possible to use *Path.lastRelationship*() ? How does it take last Relationship? According to id, or how the graph is traversed? It returns the last relationships in the current path, i.e. where the traverser is a.t.m. So it already has a reference to it and just returns it. Dne 26.3.2011 19:35, Michael Hunger napsal(a): Sure, if the tree from your root node is just a cluster that is not connected anywhere else (with those 3 relationship-types) it should be as simple as. (Just written from my head, so please check the correct syntax). Traversal.description().relationship(T1,OUTGOING).relationship(T2,OUTGOING).relationship(T3,OUTGOING).traverse(rootNode); That returns an iterator of all paths going from your root node. You can limit the nodes with .uniqueness() and then add the path's (path.nodes()) to a set to collect all nodes. For getting the one with the highest id, you can use java.util.Collections.max(collection, new ComparatorNode(){}); How big is your tree? Something like that should be in Graph-Algo perhaps as subgraph or tree. HTH Michael Am 26.03.2011 um 19:26 schrieb Matěj Plch: Thank you for so fast answer. I will look at it. I have milestone tomorrow so dont have a lot of time=) and have never worked with Groovy. Well so there isnt any simple method how to do it in classic neo4j Java API? Dne 26.3.2011 19:16, Saikat Kanjilal napsal(a): You can do all of these things using gremlin and pipes. Check out github for more details. Sent from my iPhone On Mar 26, 2011, at 11:13 AM, Matěj Plchplchm...@fit.cvut.cz wrote: Hi, I have some graph and, part of it is a tree. I simple get root of this tree through id. How to simple tranverse only tree under this root node? From root goes three unique type relationship to three unique group type nodes. Under this three nodes are a lot of nodes. And I need to write a method which gives me all nodes under that group node. Second question is if its possible ho to get from this group noe with the highest id (last added). Matěj Plch ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] simple traverse of tree
Just as a note (and as the javadoc says) you can have multiple evaluators in a traversal description. 2011/4/6 Michael Hunger michael.hun...@neotechnology.com: sure ... .evaluator(Evalutators.excludeStartPosition()) ... Cheers Michael Am 06.04.2011 um 20:15 schrieb Matěj Plch: I had there an error... My fault. Your code is working fantastic. Thank you so much. I hope the last question: is it possible to add some parameter to exclude the start node? Dne 6.4.2011 09:13, Mattias Persson napsal(a): I'm not fully aware of your domain layout, but maybe add this: .uniqueness( Uniqueness.RELATIONSHIP_GLOBAL ) to your traversal description. The default (NODE_GLOBAL) may end up hiding some of your nodes depending on your graph layout. 2011/4/5 Matěj Plchplchm...@fit.cvut.cz Well so lastRelationship() isnt the right one method I am looking for and I have to look for highest id manually. But I have problem that if I traverse in the way like Michael suggested: IteratorNode i = Traversal.description().relationships(RelationshipTypes.TICKET_QUEUE, Direction.BOTH).relationships(RelationshipTypes.TICKET_STATUS, Direction.BOTH). relationships(RelationshipTypes.TICKET_TIMETAKEN, Direction.BOTH). traverse(ticketNode).nodes().iterator(); The iterator gives me only 6 ancestors. But in Neoclipse I can see much more ancestor nodes which is right. Why this traverse gives me bad result? I need all nodes which are directly connected thought Relatioshiptypes TICKET_STATUS,TICKET_TIMETAKEN,TICKET_QUEUE with ticketNode... Dne 4.4.2011 13:59, Mattias Persson napsal(a): 2011/4/4 Matěj Plchplchm...@fit.cvut.cz Is it possible to use *Path.lastRelationship*() ? How does it take last Relationship? According to id, or how the graph is traversed? It returns the last relationships in the current path, i.e. where the traverser is a.t.m. So it already has a reference to it and just returns it. Dne 26.3.2011 19:35, Michael Hunger napsal(a): Sure, if the tree from your root node is just a cluster that is not connected anywhere else (with those 3 relationship-types) it should be as simple as. (Just written from my head, so please check the correct syntax). Traversal.description().relationship(T1,OUTGOING).relationship(T2,OUTGOING).relationship(T3,OUTGOING).traverse(rootNode); That returns an iterator of all paths going from your root node. You can limit the nodes with .uniqueness() and then add the path's (path.nodes()) to a set to collect all nodes. For getting the one with the highest id, you can use java.util.Collections.max(collection, new ComparatorNode(){}); How big is your tree? Something like that should be in Graph-Algo perhaps as subgraph or tree. HTH Michael Am 26.03.2011 um 19:26 schrieb Matěj Plch: Thank you for so fast answer. I will look at it. I have milestone tomorrow so dont have a lot of time=) and have never worked with Groovy. Well so there isnt any simple method how to do it in classic neo4j Java API? Dne 26.3.2011 19:16, Saikat Kanjilal napsal(a): You can do all of these things using gremlin and pipes. Check out github for more details. Sent from my iPhone On Mar 26, 2011, at 11:13 AM, Matěj Plchplchm...@fit.cvut.cz wrote: Hi, I have some graph and, part of it is a tree. I simple get root of this tree through id. How to simple tranverse only tree under this root node? From root goes three unique type relationship to three unique group type nodes. Under this three nodes are a lot of nodes. And I need to write a method which gives me all nodes under that group node. Second question is if its possible ho to get from this group noe with the highest id (last added). Matěj Plch ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Mattias Persson, [matt...@neotechnology.com] Hacker, Neo Technology www.neotechnology.com
Re: [Neo4j] simple traverse of tree
Well so lastRelationship() isnt the right one method I am looking for and I have to look for highest id manually. But I have problem that if I traverse in the way like Michael suggested: IteratorNode i = Traversal.description().relationships(RelationshipTypes.TICKET_QUEUE, Direction.BOTH).relationships(RelationshipTypes.TICKET_STATUS, Direction.BOTH). relationships(RelationshipTypes.TICKET_TIMETAKEN, Direction.BOTH). traverse(ticketNode).nodes().iterator(); The iterator gives me only 6 ancestors. But in Neoclipse I can see much more ancestor nodes which is right. Why this traverse gives me bad result? I need all nodes which are directly connected thought Relatioshiptypes TICKET_STATUS,TICKET_TIMETAKEN,TICKET_QUEUE with ticketNode... Dne 4.4.2011 13:59, Mattias Persson napsal(a): 2011/4/4 Matěj Plchplchm...@fit.cvut.cz Is it possible to use *Path.lastRelationship*() ? How does it take last Relationship? According to id, or how the graph is traversed? It returns the last relationships in the current path, i.e. where the traverser is a.t.m. So it already has a reference to it and just returns it. Dne 26.3.2011 19:35, Michael Hunger napsal(a): Sure, if the tree from your root node is just a cluster that is not connected anywhere else (with those 3 relationship-types) it should be as simple as. (Just written from my head, so please check the correct syntax). Traversal.description().relationship(T1,OUTGOING).relationship(T2,OUTGOING).relationship(T3,OUTGOING).traverse(rootNode); That returns an iterator of all paths going from your root node. You can limit the nodes with .uniqueness() and then add the path's (path.nodes()) to a set to collect all nodes. For getting the one with the highest id, you can use java.util.Collections.max(collection, new ComparatorNode(){}); How big is your tree? Something like that should be in Graph-Algo perhaps as subgraph or tree. HTH Michael Am 26.03.2011 um 19:26 schrieb Matěj Plch: Thank you for so fast answer. I will look at it. I have milestone tomorrow so dont have a lot of time=) and have never worked with Groovy. Well so there isnt any simple method how to do it in classic neo4j Java API? Dne 26.3.2011 19:16, Saikat Kanjilal napsal(a): You can do all of these things using gremlin and pipes. Check out github for more details. Sent from my iPhone On Mar 26, 2011, at 11:13 AM, Matěj Plchplchm...@fit.cvut.cz wrote: Hi, I have some graph and, part of it is a tree. I simple get root of this tree through id. How to simple tranverse only tree under this root node? From root goes three unique type relationship to three unique group type nodes. Under this three nodes are a lot of nodes. And I need to write a method which gives me all nodes under that group node. Second question is if its possible ho to get from this group noe with the highest id (last added). Matěj Plch ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] simple traverse of tree
2011/4/4 Matěj Plch plchm...@fit.cvut.cz Is it possible to use *Path.lastRelationship*() ? How does it take last Relationship? According to id, or how the graph is traversed? It returns the last relationships in the current path, i.e. where the traverser is a.t.m. So it already has a reference to it and just returns it. Dne 26.3.2011 19:35, Michael Hunger napsal(a): Sure, if the tree from your root node is just a cluster that is not connected anywhere else (with those 3 relationship-types) it should be as simple as. (Just written from my head, so please check the correct syntax). Traversal.description().relationship(T1,OUTGOING).relationship(T2,OUTGOING).relationship(T3,OUTGOING).traverse(rootNode); That returns an iterator of all paths going from your root node. You can limit the nodes with .uniqueness() and then add the path's (path.nodes()) to a set to collect all nodes. For getting the one with the highest id, you can use java.util.Collections.max(collection, new ComparatorNode(){}); How big is your tree? Something like that should be in Graph-Algo perhaps as subgraph or tree. HTH Michael Am 26.03.2011 um 19:26 schrieb Matěj Plch: Thank you for so fast answer. I will look at it. I have milestone tomorrow so dont have a lot of time=) and have never worked with Groovy. Well so there isnt any simple method how to do it in classic neo4j Java API? Dne 26.3.2011 19:16, Saikat Kanjilal napsal(a): You can do all of these things using gremlin and pipes. Check out github for more details. Sent from my iPhone On Mar 26, 2011, at 11:13 AM, Matěj Plchplchm...@fit.cvut.cz wrote: Hi, I have some graph and, part of it is a tree. I simple get root of this tree through id. How to simple tranverse only tree under this root node? From root goes three unique type relationship to three unique group type nodes. Under this three nodes are a lot of nodes. And I need to write a method which gives me all nodes under that group node. Second question is if its possible ho to get from this group noe with the highest id (last added). Matěj Plch ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Mattias Persson, [matt...@neotechnology.com] Hacker, Neo Technology www.neotechnology.com ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] simple traverse of tree
Matej, in this case, IteratorPath paths = Traversal.description().relationship(TICKET_STATUS,INCOMING).relationship(TICKET_STATUS_EVENT,INCOMING).traverse(db.getNodeById(1001)).iterator(); should give you an iterator of Paths, where you can just get the end node by doing paths.next().endNode() Would that help? Cheers, /peter neubauer GTalk: neubauer.peter Skype peter.neubauer Phone +46 704 106975 LinkedIn http://www.linkedin.com/in/neubauer Twitter http://twitter.com/peterneubauer http://www.neo4j.org - Your high performance graph database. http://startupbootcamp.org/ - Öresund - Innovation happens HERE. http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party. On Sat, Mar 26, 2011 at 7:55 PM, Matěj Plch plchm...@fit.cvut.cz wrote: Well maybe the best one to show the graph: https://webdev.fit.cvut.cz/~plchmate/mi-w20/neoclipse.png https://webdev.fit.cvut.cz/%7Eplchmate/mi-w20/neoclipse.png There is a ticket node:1001 and I would like to get all nodes under for example node Status_Events. Now there is only one node, in real there will be more nodes. But not so much (not more than 100 Im quite sure). Dne 26.3.2011 19:35, Michael Hunger napsal(a): Sure, if the tree from your root node is just a cluster that is not connected anywhere else (with those 3 relationship-types) it should be as simple as. (Just written from my head, so please check the correct syntax). Traversal.description().relationship(T1,OUTGOING).relationship(T2,OUTGOING).relationship(T3,OUTGOING).traverse(rootNode); That returns an iterator of all paths going from your root node. You can limit the nodes with .uniqueness() and then add the path's (path.nodes()) to a set to collect all nodes. For getting the one with the highest id, you can use java.util.Collections.max(collection, new ComparatorNode(){}); How big is your tree? Something like that should be in Graph-Algo perhaps as subgraph or tree. HTH Michael Am 26.03.2011 um 19:26 schrieb Matěj Plch: Thank you for so fast answer. I will look at it. I have milestone tomorrow so dont have a lot of time=) and have never worked with Groovy. Well so there isnt any simple method how to do it in classic neo4j Java API? Dne 26.3.2011 19:16, Saikat Kanjilal napsal(a): You can do all of these things using gremlin and pipes. Check out github for more details. Sent from my iPhone On Mar 26, 2011, at 11:13 AM, Matěj Plchplchm...@fit.cvut.cz wrote: Hi, I have some graph and, part of it is a tree. I simple get root of this tree through id. How to simple tranverse only tree under this root node? From root goes three unique type relationship to three unique group type nodes. Under this three nodes are a lot of nodes. And I need to write a method which gives me all nodes under that group node. Second question is if its possible ho to get from this group noe with the highest id (last added). Matěj Plch ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
[Neo4j] simple traverse of tree
Hi, I have some graph and, part of it is a tree. I simple get root of this tree through id. How to simple tranverse only tree under this root node? From root goes three unique type relationship to three unique group type nodes. Under this three nodes are a lot of nodes. And I need to write a method which gives me all nodes under that group node. Second question is if its possible ho to get from this group noe with the highest id (last added). Matěj Plch ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] simple traverse of tree
Sure, if the tree from your root node is just a cluster that is not connected anywhere else (with those 3 relationship-types) it should be as simple as. (Just written from my head, so please check the correct syntax). Traversal.description().relationship(T1,OUTGOING).relationship(T2,OUTGOING).relationship(T3,OUTGOING).traverse(rootNode); That returns an iterator of all paths going from your root node. You can limit the nodes with .uniqueness() and then add the path's (path.nodes()) to a set to collect all nodes. For getting the one with the highest id, you can use java.util.Collections.max(collection, new ComparatorNode(){}); How big is your tree? Something like that should be in Graph-Algo perhaps as subgraph or tree. HTH Michael Am 26.03.2011 um 19:26 schrieb Matěj Plch: Thank you for so fast answer. I will look at it. I have milestone tomorrow so dont have a lot of time=) and have never worked with Groovy. Well so there isnt any simple method how to do it in classic neo4j Java API? Dne 26.3.2011 19:16, Saikat Kanjilal napsal(a): You can do all of these things using gremlin and pipes. Check out github for more details. Sent from my iPhone On Mar 26, 2011, at 11:13 AM, Matěj Plchplchm...@fit.cvut.cz wrote: Hi, I have some graph and, part of it is a tree. I simple get root of this tree through id. How to simple tranverse only tree under this root node? From root goes three unique type relationship to three unique group type nodes. Under this three nodes are a lot of nodes. And I need to write a method which gives me all nodes under that group node. Second question is if its possible ho to get from this group noe with the highest id (last added). Matěj Plch ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] simple traverse of tree
Well maybe the best one to show the graph: https://webdev.fit.cvut.cz/~plchmate/mi-w20/neoclipse.png https://webdev.fit.cvut.cz/%7Eplchmate/mi-w20/neoclipse.png There is a ticket node:1001 and I would like to get all nodes under for example node Status_Events. Now there is only one node, in real there will be more nodes. But not so much (not more than 100 Im quite sure). Dne 26.3.2011 19:35, Michael Hunger napsal(a): Sure, if the tree from your root node is just a cluster that is not connected anywhere else (with those 3 relationship-types) it should be as simple as. (Just written from my head, so please check the correct syntax). Traversal.description().relationship(T1,OUTGOING).relationship(T2,OUTGOING).relationship(T3,OUTGOING).traverse(rootNode); That returns an iterator of all paths going from your root node. You can limit the nodes with .uniqueness() and then add the path's (path.nodes()) to a set to collect all nodes. For getting the one with the highest id, you can use java.util.Collections.max(collection, new ComparatorNode(){}); How big is your tree? Something like that should be in Graph-Algo perhaps as subgraph or tree. HTH Michael Am 26.03.2011 um 19:26 schrieb Matěj Plch: Thank you for so fast answer. I will look at it. I have milestone tomorrow so dont have a lot of time=) and have never worked with Groovy. Well so there isnt any simple method how to do it in classic neo4j Java API? Dne 26.3.2011 19:16, Saikat Kanjilal napsal(a): You can do all of these things using gremlin and pipes. Check out github for more details. Sent from my iPhone On Mar 26, 2011, at 11:13 AM, Matěj Plchplchm...@fit.cvut.cz wrote: Hi, I have some graph and, part of it is a tree. I simple get root of this tree through id. How to simple tranverse only tree under this root node? From root goes three unique type relationship to three unique group type nodes. Under this three nodes are a lot of nodes. And I need to write a method which gives me all nodes under that group node. Second question is if its possible ho to get from this group noe with the highest id (last added). Matěj Plch ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user