what used una para pagina oficial grafos for example descargar datos crear como bases neo4j cypher

used - neo4j pagina oficial



¿Puedo escribir un complemento de Neo4j para interceptar y modificar las consultas de CYPHER? (2)

En mi sistema, me gustaría interceptar y cambiar las consultas de Cypher a medida que entran, una alternativa es modificarlas antes de enviarlas desde mi capa intermedia al gráfico, pero ¿hay alguna manera de tener un complemento para hacer la conversión en mi el gráfico en sí?

Me gustaría hacer algo de lo siguiente: si alguien se identifica como miembros del grupo A, imagina que me gustaría cambiar su solicitud de:

MATCH(f:Film)-[r:REVIEWED_BY]-(u:User {id:"1337"})

a:

MATCH(p:Product)-[p:PURCHASED_BY]-(u:User {id:"1337"})

Es algo como esto posible? ¿O tengo que escribir los recorridos en Java directamente para lograr esto?



Por supuesto que puede. Puedes hacer NADA en Neo4j. Simplemente tome la cadena de cifrado en una extensión no administrada que reciba una solicitud de publicación, modifíquela de la manera que desee, ejecútela con el método graphdb.execute y devuelva el resultado de la forma habitual.

@POST @Path("/batch") public Response alterCypher(String body, @Context GraphDatabaseService db) throws IOException, InterruptedException { ArrayList<Result> results = new ArrayList<>(); // Validate our input or exit right away HashMap input = Validators.getValidCypherStatements(body); ArrayList<HashMap> statements = (ArrayList<HashMap>)input.get("statements"); for (HashMap statement : statements) { // write the alterQuery method to change the queries. String alteredQuery = alterQuery((String)statement.get("statement")); Result result = db.execute(alteredQuery, (Map)statement.getOrDefault("parameters", new HashMap<>())); results.add(result); } // or go the results and return them however you want // see https://github.com/dmontag/neo4j-unmanaged-extension-template/blob/master/src/main/java/org/neo4j/example/unmanagedextension/MyService.java#L36 return Response.ok().build(); }