2013-09-26 4 views
0

J'utilise:Neo4j Spring SocketTimeoutError

  • Neo4j 1.8.2
  • printemps 3.1.1
  • ressort données Neo4j 2.1.0
  • printemps-données-Neo4j repos 2.1 .0

Dans mon exemple de Neo4j je:

  • 219 noeuds
  • propriétés 1838
  • 592 relations

Dans mon code, je veux rechercher des amis d'amis; en orde de le faire, j'ai écrit ce code:

@Query(value = "START n = node({userStartId}) " 
+ "MATCH n-[:OPINION_LEADER_INFLUENCE*2..]->friend_of_friend " 
+ "WHERE not(n-[:OPINION_LEADER_INFLUENCE]->friend_of_friend) " 
+ "and id(n) <> id(friend_of_friend) " 
+ "RETURN COUNT (distinct friend_of_friend)") 
public int getFriendOfFriendNumber(@Param("userStartId") long userStartId) 

Quand j'exécutaient je suis un SocketTimeoutException j'ai essayé d'exécuter la requête directement sur le tableau de bord de Neo4j; la requête exécutée est la suivante:

START n = node(111) 
MATCH n-[:OPINION_LEADER_INFLUENCE*2..]->friend_of_friend 
WHERE not(n-[:OPINION_LEADER_INFLUENCE]->friend_of_friend) 
and id(n) <> id(friend_of_friend) 
RETURN COUNT (distinct friend_of_friend) 

il exécution sur le tableau de bord de Neo4j j'ai pris environ 10 minutes pour être exécuté (ce qui est la raison pour laquelle je suis l'erreur)

vous pouvez me dire de bien vouloir comment je peux prévenir l'erreur?

Y at-il un réglage que je devrais faire dans neo4j?

Dois-je modifier la requête?

Comment puis-je régler le délai d'attente pour le Jersey?

Merci Angelo

Répondre

1

J'ai trouvé le problème

Ce fut la requête; Je l'ai modifié ainsi:

START n = node(111) 
MATCH n-[:OPINION_LEADER_INFLUENCE*2..2]-friend_of_friend 
WHERE not(n-[:OPINION_LEADER_INFLUENCE]-friend_of_friend) 
and id(n) <> id(friend_of_friend) 
RETURN COUNT (distinct friend_of_friend), friend_of_friend.user_id 

Angelo

Questions connexes