uso texto reglas puntos punto poner para oraciones niños los ejemplos cuando con coma neo4j cypher

neo4j - texto - ¿Cuál es la diferencia entre varias cláusulas MATCH y una coma en una consulta de Cypher?



uso de los dos puntos (3)

En un lenguaje de consulta Cypher para Neo4j, ¿cuál es la diferencia entre una cláusula MATCH inmediatamente después de otra como esta:

MATCH (d:Document{document_ID:2}) MATCH (d)--(s:Sentence) RETURN d,s

¿Contra los patrones separados por comas en la misma cláusula MATCH? P.ej:

MATCH (d:Document{document_ID:2}),(d)--(s:Sentence) RETURN d,s

En este ejemplo simple el resultado es el mismo. Pero ¿hay alguna "trampa"?


Hay una diferencia: las coincidencias separadas por comas en realidad se consideran parte del mismo patrón. Así, por ejemplo, la garantía de que cada relación aparece solo una vez en la ruta resultante se mantiene aquí.

Los PARTIDOS separados son operaciones separadas cuyos caminos no forman un solo patrón y que no tienen estas garantías.


No hay diferencias entre estos, siempre que las cláusulas no estén vinculadas entre sí .

Si hiciste esto:

MATCH (a:Thing), (b:Thing) RETURN a, b;

Eso es lo mismo que

MATCH (a:Thing) MATCH (b:Thing) RETURN a, b;

Porque (y solo porque) a y b son independientes. Si a y b estuvieran vinculados por una relación, entonces el significado de la consulta podría cambiar.


Si una parte de una consulta contiene varios patrones desconectados, esto generará un producto cartesiano entre todas esas partes. Esto puede producir una gran cantidad de datos y ralentizar el procesamiento de consultas. Aunque ocasionalmente se pretende, a menudo es posible reformular la consulta que evita el uso de este producto cruzado, quizás agregando una relación entre las diferentes partes o utilizando el PARTIDO OPCIONAL (el identificador es: (a)). En resumen, no hay diferencia en esta pregunta, pero la usamos con mucho cuidado.