Je suis en train de créer un noeud indexé dans Cypher, avec la syntaxe suivante:Créer des nœuds indexés sur Neo4j Cypher via le repos api
neo4j-sh (?)$ start m=node:person(UID= "1") return m;
==> +------------+
==> | m |
==> +------------+
==> | Node[64]{} |
==> +------------+
==> 1 row
==> 0 ms
==>
neo4j-sh (?)$ start n = node(64) return n.UID;
==> EntityNotFoundException: The property 'UID' does not exist on Node[64]
Pourquoi est-ce que le nœud semble être créé, mais la propriété Je crée, et qui semble être retourné avec succès, n'existe pas?
Existe-t-il un moyen plus simple? Je l'habitude d'utiliser la fonction de py2neo:
neo4j.GraphDatabaseService("http://localhost:7474/db/data/").get_or_create_indexed_node(index='person', key='UID', value=self.id, properties={'UID' : self.id})
Mais cela semble avoir été dépréciée --- il ne fonctionne plus avec la dernière version de py2neo, qui ne semble pas soutenir l'argument properties
plus longtemps (et pour l'avenir les gens, index
est remplacé par index_name
).
L'index "personne" n'est-il pas donné par 'start n node:/person /'? Les propriétés sont définies dans parens après. Py2neo utilise l'API REST sous le capot pour avoir créé l'index. – Mittenchops
Oui, la requête ci-dessus utilise l'index nommé personne recherchant la paire clé/valeur UID: "1". Alors qu'en pratique, les paires clé/valeur sont souvent créées pour refléter les propriétés des nœuds, cela n'est pas nécessaire pour autant que je sache. Si vous regardez la documentation de l'index REST (http://docs.neo4j.org/chunked/stable/rest-api-indexes.html), vous pouvez facilement créer des index clé/valeur qui n'ont rien à voir avec les propriétés des nœuds. – MrDosu
J'ai édité le nom de l'index que je me suis trompé – MrDosu