Bienvenidos a Cypher se describen la consultas fundamentales de Neo4j a través de cypher, si deseas conocer mas sobre la bases de datos orientada a grafos puedes leer lo siguientes artículos: Introducción a Neo4J base de datos orientada a grafos y Introducción a los conceptos base de datos grafos Neo4j
Ejecutar
:play cypher
Cypher
El lenguaje de consulta de grafos de Neo4J.
El lenguaje Cypher de Neo4J está construido especialmente para trabajar con los datos del grafo.
- Los patrones de uso para describir los datos del grafo
- El familiar SQL como consultas
- La descripción declarativa, que encontrar, no como encontrarlo.
Create
Crear un nodo.
Utilizáremos Cypher para generar un grafo social simple.
CREATE (ee:Person { name: «Emil», from: «Sweden», klout: 99 })
- Create: cláusula para crear nodos
- (): el paréntesis indica un nodo
- ee:Person: la ee es una variable y una etiqueta Person, para el nuevo nodo
- {}: los paréntesis cuadrados para añadir propiedades al nodo.
Match
Encontrando nodos.
Ahora encuentre el nodo representado por email.
MATCH (ee:Person) WHERE ee.name = «Emil» RETURN ee;
- Match: es la cláusula para especificar patrón de nodos y relaciones.
- (ee.Person): un solo patrón del nodo con etiqueta “Person”, que realizara la equivalencia para ee variable.
- Where: la cláusula para condiciones de los resultados
- Ee.name = «Emil»: compara la propiedad de nombre y el valor de «Emil»
- Return: la cláusula usada para retornar resultados particulares.
Create Más
Los nodos y las relaciones
Create: las clausuras pueden crear muchos nodos y relaciones de inmediato.
MATCH (ee:Person) WHERE ee.name = «Emil»
CREATE (js:Person { name: «Johan», from: «Sweden», learn: «surfing» }),
(ir:Person { name: «Ian», from: «England», title: «author» }),
(rvb:Person { name: «Rik», from: «Belgium», pet: «Orval» }),
(ally:Person { name: «Allison», from: «California», hobby: «surfing» }),
(ee)-[:KNOWS {since: 2001}]->(js),(ee)-[:KNOWS {rating: 5}]->(ir),
(js)-[:KNOWS]->(ir),(js)-[:KNOWS]->(rvb),
(ir)-[:KNOWS]->(js),(ir)-[:KNOWS]->(ally),
(rvb)-[:KNOWS]->(ally)
Comprobación de configuraciones:
Describe qué encontrar en el grafo.
Por ejemplo, un patrón puede usarse para encontrar a los amigos de Emil.
MATCH (ee:Person)-[:KNOWS]-(friends)
WHERE ee.name = «Emil» RETURN ee, friends
- Match: cláusula para describir el patrón de nodos conocidos para encontrar los nodos.
- (ee): Inicia el patrón con Person (capacitado por Where)
- -[:KNOWS]-: corresponde a KNOWS relaciones (en cualquier dirección)
- (friends): se saltó para los amigos de Emil.
Recomendaciones:
Usando patrones.
La comprobación de configuraciones puede usarse para hacer recomendaciones.
Johan está aprendiendo a surfear, así que él puede querer encontrarse a un nuevo amigo que hace:
MATCH (js:Person)-[:KNOWS]-()-[:KNOWS]-(surfer)
WHERE js.name = «Johan» AND surfer.hobby = «surfing»
RETURN DISTINCT surfer
- (): Paréntesis vacío para ignorar estos nodos.
- DISTINCT: (distinto) porque más de lo que una ruta corresponde a un patrón.
- Surfer: contendrá Allison, un amigo de un amigo que surfea.