0

私は使用しています:

  • neo4j 1.8.2
  • 春 3.1.1
  • 春データneo4j 2.1.0
  • spring-data-neo4j-rest 2.1.0

私のneo4jインスタンスには次のものがあります:

  • 219ノード
  • 1838物件
  • 592人の関係

私のコードでは、友達の友達を検索したいと考えています。それを行うために、私はこのコードを書きました:

@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)

実行すると、SocketTimeoutException が発生しました。neo4j ダッシュボードで直接クエリを実行しようとしました。実行されたクエリは次のとおりです。

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)

neo4jダッシュボードで実行すると、実行されるまでに約10分かかりました(これがエラーが発生した理由です)

エラーを防ぐ方法を教えてください。

neo4j で行うべきチューニングはありますか?

クエリを変更する必要がありますか?

Jersey のタイムアウトを設定するにはどうすればよいですか?

ありがとうアンジェロ

4

1 に答える 1

1

問題が見つかりました

それはクエリでした。私はこのように修正しました:

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

アンジェロ

于 2013-09-27T07:29:10.680 に答える