so any solutions for this case, Lundin?
Please help.
Thank you.
On Saturday, April 5, 2014 7:41:51 PM UTC+7, Rio Eduardo wrote:
>
> I already tried like you did before you did it
> if (position.length()>2){position.length()>2}else{position.length()>1}
>
> and again it doesn't work because it always execute the else statement
> position.length()>1
>
> and if I set condition statement like this:
> if (position.length()==2){position.length()>2}else{position.length()>1}
>
> it always execute the condition statement:
> position.length()>2
>
> I can conclude that position.length() is always 2. So it still doesn't
> work with that way. I don't know how to make conditions anymore because the
> info that I got is just from
> http://components.neo4j.org/neo4j/2.0.1/apidocs/org/neo4j/graphdb/Path.html
> .
>
> Thank you.
>
>
>
>
> On Saturday, April 5, 2014 6:39:05 PM UTC+7, Lundin wrote:
>>
>> What have you tried so far?
>>
>> The filter body code is sent as javascript and interpreted on the server,
>> test the length before doing the filtering
>> if (position.length()>2){position.length()>2}else{position.length()>1}
>> would work in both cases.
>>
>> Den lördagen den 5:e april 2014 kl. 06:23:59 UTC+2 skrev Rio Eduardo:
>>>
>>> yeah because if the model graph is changed, the way to return filter
>>> also changes. For example:
>>> In your case here:
>>> CREATE (Pontus:People { name:'Pontus Lundin' }),(John:People { name: 'John
>>> Hellberg' }),(Jack:People { name: 'Jack Hellberg' }),(Sandra:People {name
>>> : 'Sandra Johansson', sex:'female' }),(Fredrik:People { name:'Fredrik
>>> Hansson' }),(Nils:People { name:'Nils Poppe' }),(Pontus)-[:FRIEND]->(
>>> Jack),(Jack)-[:FRIEND]->(Sandra),(John)-[:FRIEND]->(Jack),(Jack)-[:
>>> FRIEND]->(John),(Sandra)-[:FRIEND]->(Fredrik),(Fredrik)-[:FRIEND]->(
>>> Ronny),(Pontus)-[:FRIEND]->(John),(Pontus)-[:FRIEND]->(Fredrik),(Sandra
>>> )-[:FRIEND]->(Nils);
>>>
>>> your Traversal Api will work well:
>>> POST
>>> http://localhost:7474/db/data/node/0/traverse/node{"order":"breadth_first","uniqueness":"node_global","prune_evaluator":{"name":"none","language":"builtin"},
>>>
>>> "return_filter":{ "body":"position.length()>2", "language":"javascript" },
>>> "relationships":{"direction":"out","type":"FRIEND"},"max_depth":3}
>>>
>>> But in my case here:
>>> User | Friends
>>> 1 | 9,2,8,7,5
>>> 2 | 1,6,3,8,10
>>> 3 | 5,7,1,10,2
>>> 4 | 3,10,6,9,5
>>> 5 | 4,8,1,9,3
>>> 6 | 7,9,3,2,10
>>> 7 | 9,5,10,6,8
>>> 8 | 6,9,1,10,5
>>> 9 | 6,5,10,1,8
>>> 10 | 8,6,4,5,9
>>>
>>> with your Traversal Api it will not work, it will return null instead
>>> because you set position.length() > 2. But if I set position.length() > 1,
>>> it will work well:
>>> POST http://localhost:7474/db/data/node/1/traverse/node
>>> {"order":"breadth_first","uniqueness":"node_global","prune_evaluator":{"name":"none","language":"builtin"},
>>>
>>> "return_filter":{ "body":"position.length()>1", "language":"javascript" },
>>> "relationships":{"direction":"out","type":"Friend"},"max_depth":3}
>>>
>>> And if I have graph that has structure like tree:
>>> User | Friends
>>> A | B,C,Q
>>> B | A,E,D
>>> C | A,G,F
>>> D | B,H
>>> E | B,J,I
>>> F | C
>>> G | C,L,K
>>> H | D,N,M
>>> I | E
>>> J | E
>>> K | G,O
>>> L | G
>>> M | H,P
>>> N | H,Q
>>> O | K,R
>>> P | M,A
>>> Q | N,A
>>> R | O,A
>>>
>>> with your Traversal Api it will work well while mine is not.
>>>
>>> That's why I said it works sometimes. So maybe you have a solution for
>>> this case?
>>>
>>> Thank you.
>>>
>>>
>>> On Saturday, April 5, 2014 7:43:06 AM UTC+7, Lundin wrote:
>>>>
>>>> First, why do you say it works sometimes ? That sounds like a bug to me
>>>> in that case. Can you please start with a small dataset so you know and
>>>> being sure that you know whats going on in the graph ?
>>>>
>>>> CREATE (Pontus:People { name:'Pontus Lundin' }),(John:People { name:
>>>> 'John Hellberg' }),(Jack:People { name: 'Jack Hellberg' }),(Sandra:People
>>>> {
>>>> name: 'Sandra Johansson', sex:'female' }),(Fredrik:People { name:'Fredrik
>>>> Hansson' }),(Nils:People { name:'Nils Poppe'
>>>> }),(Pontus)-[:FRIEND]->(Jack),(Jack)-[:FRIEND]->(Sandra),(John)-[:FRIEND]->(Jack),(Jack)-[:FRIEND]->(John),(Sandra)-[:FRIEND]->(Fredrik),(Fredrik)-[:FRIEND]->(Ronny),(Pontus)-[:FRIEND]->(John),(Pontus)-[:FRIEND]->(Fredrik),(Sandra)-[:FRIEND]->(Nils);
>>>>
>>>> This creates a graph with fof where i would like to query for fof where
>>>> i am not already friend with.
>>>>
>>>> POST
>>>> http://localhost:7474/db/data/node/0/traverse/node{"order":"breadth_first","uniqueness":"node_global","prune_evaluator":{"name":"none","language":"builtin"},
>>>>
>>>> "return_filter":{ "body":"position.length()>2", "language":"javascript" },
>>>> "relationships":{"direction":"out","type":"FRIEND"},"max_depth":3}
>>>>
>>>> Will return Nils Poppe which is a friend to Sandra. Sandra is also
>>>> Friend to Fredrik but i am already friend to him so he is excluded.
>>>>
>>>> As for your second question i dont know if that is possible with the
>>>> REST API i dont think so
>>>> The actual docs for path is
>>>>
>>>> http://components.neo4j.org/neo4j/2.0.1/apidocs/org/neo4j/graphdb/Path.html
>>>>
>>>> but you will have to use cypher and do yet another query and a simple
>>>> query like this will return the number:
>>>>
>>>> MATCH (n)-[r]-(friends)
>>>> RETURN count(r), type(r);
>>>>
>>>>
>>>>
>>>> Den lördagen den 5:e april 2014 kl. 02:25:48 UTC+2 skrev Rio Eduardo:
>>>>>
>>>>> Lundin, Do you know the way how to count many relationships in the
>>>>> graph because I don't see it in the doc(method for the position
>>>>> object(the
>>>>> path))?
>>>>>
>>>>> Thank you.
>>>>>
>>>>> On Saturday, April 5, 2014 12:43:01 AM UTC+7, Lundin wrote:
>>>>>>
>>>>>> Have you tried experimenting with ther filter and the path length ?
>>>>>> endNod() is not the only method for the position object(the path),
>>>>>> Mabey position.length>1 or something.
>>>>>>
>>>>>> Den fredagen den 4:e april 2014 kl. 18:10:33 UTC+2 skrev Rio Eduardo:
>>>>>>>
>>>>>>> Please anyone in this group help me. I already posted my problem at
>>>>>>>
>>>>>>>
>>>>>>> http://stackoverflow.com/questions/22861424/neo4j-traversal-to-find-friends-of-friends-that-are-not-friends-with-the-user
>>>>>>>
>>>>>>> Thank you.
>>>>>>>
>>>>>>
--
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.