4

関連する方法を見つけました:

  1. find- このバージョンのneo4jはラベルをサポートしていないため、機能しません。
  2. match-ノードにはまだ関係がないため、関係を指定できないため機能しません。
  3. match_one- と同じmatch
  4. node- ノードの ID がわからないため、機能しません。

私は同等のものを必要とします:

start n = node(*) where n.name? = "wvxvw" return n;

暗号クエリ。基本的なことのように思えますが、実際にはそうではありません...

PS。言及しきれないほどの理由から、Cypher の使用には反対です。したがって、それも選択肢ではありません。

4

4 に答える 4

1

さて、開始ノードが減るようにインデックスを作成する必要があります。これは、ラベルを使用して自動的に処理されますが、当面は回避策があります。

  1. 「ラベル」などのインデックスを作成します。これには、さまざまなタイプのノードを指すキーが含まれます (この場合は「Person」とします)。
  2. 検索中に、次のクエリを記述できます。

     START n = node:label(key_name='Person') WHERE n.name = 'wvxvw' RETURN n; //key_name is the key's name you will assign while creating the node.
    
于 2013-11-11T17:24:51.130 に答える
1

セレクターを使用してグラフからノードを取得します 次のコードは、検索に一致するノードのリストから最初のノードを取得します

selector = NodeSelector(graph)
node = selector.select("Label",key='value')
nodelist=list(node)
m_node=node.first()
于 2016-07-19T13:20:00.823 に答える
1

user797257 はゲームから外れているようですが、これはまだ役立つと思います:

ノードを取得する場合は、インデックスを作成する必要があります。Neo4j のインデックスは、MySQL やその他のデータベースと同じです (私の理解が正しければ)。ラベルは基本的に自動インデックスですが、インデックスを使用すると速度が向上します。(私は両方を使用します)。

上のどこか、または neo4j 自体でインデックスを作成します。

index = graph_db.get_or_create_index(neo4j.Node, "index_name")

次に、通常どおりノードを作成しますが、インデックスに追加してください。

new_node = batch.create(node({"key":"value"}))
batch.add_indexed_node(index, "key", "value", new_node)

ここで、new_node を見つける必要がある場合は、次を実行します。

 new_node_ref = index.get("key", "value")

これはリストを返します。new_node_ref[0]単一のノードが必要/期待される場合に備えて、一番上の項目があります。

于 2014-01-10T22:54:55.657 に答える
0

を使用するpy2neoと、このハッキーな関数はプロパティと値とラベルを繰り返し処理し、送信された各条件に一致しないすべてのノードを徐々に削除します。最終結果は、指定されたすべてのプロパティとラベルに一致するすべてのノード (存在する場合) のリストになります。

def find_multiProp(graph, *labels, **properties):
    results = None
    for l in labels:
        for k,v in properties.iteritems():
            if results == None:
                genNodes = lambda l,k,v: graph.find(l, property_key=k, property_value=v)
                results = [r for r in genNodes(l,k,v)]
                continue
            prevResults = results
            results = [n for n in genNodes(l,k,v) if n in prevResults]
    return results

複数のプロパティを受け入れるを作成するための私の他の回答を参照してください...merge_one()

于 2015-06-04T04:30:13.633 に答える