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 neo4j+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to