このNeo4JCypherクエリを最適化する

JnBrymn

私はNeo4Jを学んでいて、私のおもちゃのプロジェクトはTwitterで遊ぶことです。この小さなスクリプトでは、python tweepyとpy2neoを使用して1つのtwitter_userを取得し、すべての友達を挿入しています。

def insert_friends(twitter_user):
    for friend in Cursor(api.friends, user_id=twitter_user.id_str).items():
        n=neo4j.CypherQuery(graph_db,"""
                MATCH (user),(friend)
                WHERE user.id_str={user_id_str} AND friend.id_str={friend_id_str}
                CREATE UNIQUE (user)-[:FOLLOWS]->(friend)
        """).execute_one(user_id_str=twitter_user.id_str, friend_id_str=friend.id_str)

これは問題なく動作しますが、最適化できると思います。つまり、WHERE句で、毎回同じuser.idを検索しています。毎回その余分なルックアップを回避するにはどうすればよいですか?たとえば、Neo4Jのどのノードにあるかを事前に把握し、Neo4Jの内部ノードIDを指定するだけでよいのでしょうか。

イブフリーマン

ラベルとインデックスを使用する必要があります!

すなわち:

CREATE INDEX on :User(id_str);

MATCH (user:User),(friend:User) // add labels so it knows to use the index
WHERE user.id_str={user_id_str} AND friend.id_str={friend_id_str}
CREATE UNIQUE (user)-[:FOLLOWS]->(friend);

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Neo4jCypherパフォーマンスクエリの最適化

分類Dev

C#でNeo4JCypherクエリを作成する

分類Dev

このNeo4JCypher 2クエリを表現するためのより良い方法は何ですか?

分類Dev

neo4jcypherクエリにパラメータを渡す

分類Dev

多対多の関係に対するNeo4jCypherクエリ

分類Dev

Neo4jCypherクエリでFOREACHの後にノードを返すことができません

分類Dev

Neo4jCypherクエリエラー

分類Dev

Neo4jCypher再帰クエリ

分類Dev

Neo4JCypherクエリ-Null関係

分類Dev

nullまたはnull以外の値を持つNeo4jCypherクエリ

分類Dev

長いが(ほぼ)一意のパスのNeo4JCypherクエリを探しています

分類Dev

特性デルタに基づいてノードを見つけるためのNeo4jCypherクエリ

分類Dev

GraphRepositoryパターンを使用してneo4jcypherクエリを動的に構築することは可能ですか?

分類Dev

csvをロードするためのneo4jcypherインポートスクリプトのIF条件

分類Dev

Neo4jCypherスクリプトをGremlinに変換するのに助けが必要

分類Dev

開始-終了条件に基づいて単一の関係を持つノードのパスを一覧表示するNeo4jCypherクエリ

分類Dev

そして、neo4jcypherクエリの条件が機能しません

分類Dev

Neo4jCypherクエリ言語のさまざまなデータ型

分類Dev

Neo4jCypherクエリが際限なく実行されています

分類Dev

Neo4jCypherクエリと複合オブジェクト

分類Dev

C#:Where句にパスを含むneo4jCypherクエリを実行しています

分類Dev

C#:Where句にパスを含むneo4jCypherクエリを実行しています

分類Dev

メソッドコードをNeo4jCypherクエリに移動します

分類Dev

Springデータneo4jcypherクエリ

分類Dev

Neo4jCypherクエリと複雑な並べ替え

分類Dev

Neo4jCypher数値の文字列を日付に設定する

分類Dev

Neo4jcypher最初の一致で再帰性を停止する方法

分類Dev

Neo4jCypherクエリのインデックス付きプロパティでMAXを見つける方法

分類Dev

Neo4jCypherクエリ-正規表現を使用したクエリプロパティ配列

Related 関連記事

  1. 1

    Neo4jCypherパフォーマンスクエリの最適化

  2. 2

    C#でNeo4JCypherクエリを作成する

  3. 3

    このNeo4JCypher 2クエリを表現するためのより良い方法は何ですか?

  4. 4

    neo4jcypherクエリにパラメータを渡す

  5. 5

    多対多の関係に対するNeo4jCypherクエリ

  6. 6

    Neo4jCypherクエリでFOREACHの後にノードを返すことができません

  7. 7

    Neo4jCypherクエリエラー

  8. 8

    Neo4jCypher再帰クエリ

  9. 9

    Neo4JCypherクエリ-Null関係

  10. 10

    nullまたはnull以外の値を持つNeo4jCypherクエリ

  11. 11

    長いが(ほぼ)一意のパスのNeo4JCypherクエリを探しています

  12. 12

    特性デルタに基づいてノードを見つけるためのNeo4jCypherクエリ

  13. 13

    GraphRepositoryパターンを使用してneo4jcypherクエリを動的に構築することは可能ですか?

  14. 14

    csvをロードするためのneo4jcypherインポートスクリプトのIF条件

  15. 15

    Neo4jCypherスクリプトをGremlinに変換するのに助けが必要

  16. 16

    開始-終了条件に基づいて単一の関係を持つノードのパスを一覧表示するNeo4jCypherクエリ

  17. 17

    そして、neo4jcypherクエリの条件が機能しません

  18. 18

    Neo4jCypherクエリ言語のさまざまなデータ型

  19. 19

    Neo4jCypherクエリが際限なく実行されています

  20. 20

    Neo4jCypherクエリと複合オブジェクト

  21. 21

    C#:Where句にパスを含むneo4jCypherクエリを実行しています

  22. 22

    C#:Where句にパスを含むneo4jCypherクエリを実行しています

  23. 23

    メソッドコードをNeo4jCypherクエリに移動します

  24. 24

    Springデータneo4jcypherクエリ

  25. 25

    Neo4jCypherクエリと複雑な並べ替え

  26. 26

    Neo4jCypher数値の文字列を日付に設定する

  27. 27

    Neo4jcypher最初の一致で再帰性を停止する方法

  28. 28

    Neo4jCypherクエリのインデックス付きプロパティでMAXを見つける方法

  29. 29

    Neo4jCypherクエリ-正規表現を使用したクエリプロパティ配列

ホットタグ

アーカイブ