neo4jgraph-databasesneo4j-java-api

Is there any specific way to write limit clause in eclipse for neo4j?


I am have following problems in neo4j eclipse implementation :

1 . I get error with the limit function

Code:
      String rows = "";        
    try ( Transaction ignored = graphDb.beginTx();
            Result result = graphDb.execute( "match(pr:Provider)-[t:TREATS]->(p:Problem) return pr.prdes as Name, t.pprcount as Visits, limit 5" ) )
      {
          while ( result.hasNext() )
          {
              Map<String,Object> row = result.next();
              for ( Entry<String,Object> column : row.entrySet() )
              {
                   rows += column.getKey() + ": " + column.getValue() + "; ";
              }
              rows += "\n";
          }
      }
    System.out.println(""+rows);

}

Output:
Exception in thread "main" org.neo4j.graphdb.QueryExecutionException: Invalid input '5': expected whitespace, comment, node labels, MapLiteral, a parameter, a relationship pattern, '(', '.', '[', "=~", IN, IS, '^', '*', '/', '%', '+', '-', '<', '>', "<=", ">=", '=', "<>", "!=", AND, XOR, OR, AS, ',', ORDER, SKIP, LIMIT, LOAD CSV, START, MATCH, UNWIND, MERGE, CREATE, SET, DELETE, REMOVE, FOREACH, WITH, RETURN, UNION, ';' or end of input (line 1, column 97 (offset: 96)) "match(pr:Provider)-[t:TREATS]->(p:Problem) return pr.prdes as Name, t.pprcount as Visits, limit 5"                                
  1. Also it took like 50 mins to execute the above query without the limit clause. So how to increase the performance speed?

Solution

  • You cannot have a comma before limits, try

    match(pr:Provider)-[t:TREATS]->(p:Problem) 
    return pr.prdes as Name, t.pprcount as Visits limit 5
    

    instead.

    Since this is a global query without a defined start point its execution time will of course depend on your data size.