Saltar al contenido

Neo4j – Lenguaje de consulta Cypher vs Gremlin

Intenta comprender el código bien antes de utilizarlo a tu trabajo si tdeseas aportar algo puedes compartirlo con nosotros.

Solución:

Para consultas generales, Cypher es suficiente y probablemente sea más rápido. La ventaja de Gremlin sobre Cypher es cuando entras en un recorrido de alto nivel. En Gremlin, puede definir mejor el patrón transversal exacto (o sus propios algoritmos), mientras que en Cypher el motor intenta encontrar la mejor solución transversal por sí mismo.

Yo personalmente uso Cypher debido a su simplicidad y, hasta la fecha, no he tenido ninguna situación en la que haya tenido que usar Gremlin (excepto al trabajar con las funciones de importación/exportación de GraphML de Gremlin). Sin embargo, espero que incluso si tuviera que usar Gremlin, lo haría para una consulta específica que encontraría en la red y nunca volvería.

Siempre puedes aprender Cypher realmente rápido (en días) y luego continuar con el Gremlin general (a más largo plazo).

Tenemos que atravesar miles de nodos en nuestras consultas. Cypher era lento. El equipo de Neo4j nos dijo que implementar nuestro algoritmo directamente contra la API de Java sería entre 100 y 200 veces más rápido. Lo hicimos y obtuvimos fácilmente el factor 60. A partir de ahora no tenemos una sola consulta de Cypher en nuestro sistema debido a la falta de confianza. Las consultas Easy Cypher son fáciles de escribir en Java, las consultas complejas no funcionarán. El problema es que cuando tiene múltiples condiciones en su consulta, Cypher no tiene forma de saber en qué orden realizar los recorridos. Por lo tanto, su consulta de cifrado puede volverse loca en el gráfico en una dirección incorrecta primero. No he hecho mucho con Gremlin, pero me imagino que obtienes mucho más control de ejecución con Gremlin.

Los esfuerzos del equipo de Neo4j en Cypher han sido realmente impresionantes y han recorrido un largo camino. El equipo de Neo normalmente empuja a las personas hacia él y, a medida que Cypher madure, Gremlin probablemente recibirá menos atención. Cypher es una buena opción a largo plazo.

Dicho esto, Gremlin es un DSL Groovy. Usarlo a través de su punto final Neo4j REST permite un acceso completo y sin restricciones a la API Neo4j Java subyacente. Este (y otros complementos de secuencias de comandos en la misma categoría) no se pueden igualar en términos de potencia de bajo nivel. Además, puede ejecutar Cypher desde el complemento Gremlin.

De cualquier manera, hay una ruta de actualización sensata donde aprendes ambos. Yo iría con el que te pone en marcha más rápido. En mis proyectos, normalmente uso Gremlin y luego llamo a Cypher (desde dentro de Gremlin o no) cuando necesito resultados tabulares o coincidencia de patrones expresivos; ambos son un dolor en el DSL de Gremlin.

Recuerda algo, que tienes la opción de comentar tu experiencia si te fue de ayuda.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *