org.neo4j.graphdb.Result.getQueryStatistics()方法的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(10.9k)|赞(0)|评价(0)|浏览(75)

本文整理了Java中org.neo4j.graphdb.Result.getQueryStatistics方法的一些代码示例,展示了Result.getQueryStatistics的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Result.getQueryStatistics方法的具体详情如下:
包路径:org.neo4j.graphdb.Result
类名称:Result
方法名:getQueryStatistics

Result.getQueryStatistics介绍

[英]Statistics about the effects of the query.
[中]有关查询效果的统计信息。

代码示例

代码示例来源:origin: neo4j/neo4j

@Override
public QueryStatistics queryStatistics()
{
  return originalResult.getQueryStatistics();
}

代码示例来源:origin: neo4j/neo4j

@Override
public QueryStatistics getQueryStatistics()
{
  return originalResult.getQueryStatistics();
}

代码示例来源:origin: neo4j/neo4j

@Before
public void setUp() throws Exception
{
  GraphDatabaseQueryService cypherService = new GraphDatabaseCypherService( this.database.getGraphDatabaseAPI() );
  compilerFactory = mock( CompilerFactory.class );
  transactionalContext = mock( TransactionalContext.class );
  KernelStatement kernelStatement = mock( KernelStatement.class );
  executor = mock( SnapshotExecutionEngine.ParametrizedQueryExecutor.class );
  versionContext = mock( VersionContext.class );
  executionEngine = createExecutionEngine(cypherService);
  when( kernelStatement.getVersionContext() ).thenReturn( versionContext );
  when( transactionalContext.statement() ).thenReturn( kernelStatement );
  Result result = mock( Result.class );
  QueryStatistics statistics = mock( QueryStatistics.class );
  when( result.getQueryStatistics() ).thenReturn( statistics );
  when( executor.execute( any(), anyMap(), any() ) ).thenReturn( result );
}

代码示例来源:origin: neo4j/neo4j

public CypherResultRepresentation( final Result result, boolean includeStats, boolean includePlan )
{
  super( RepresentationType.STRING );
  resultRepresentation = createResultRepresentation( result );
  columns = ListRepresentation.string( result.columns() );
  statsRepresentation = includeStats ? new CypherStatisticsRepresentation( result.getQueryStatistics() ) : null;
  plan = includePlan ? CypherPlanRepresentation.newFromProvider(planProvider(result)) : null;
}

代码示例来源:origin: neo4j/neo4j

@Test
public void eagerResultHaveQueryStatistic()
{
  Result result = database.execute( "MATCH (n) RETURN n.c" );
  assertEquals( 1, testCursorContext.getAdditionalAttempts() );
  assertFalse( result.getQueryStatistics().containsUpdates() );
}

代码示例来源:origin: neo4j/neo4j

protected <T> Result executeWithRetries( String query, T parameters, TransactionalContext context,
    ParametrizedQueryExecutor<T> executor ) throws QueryExecutionKernelException
{
  VersionContext versionContext = getCursorContext( context );
  EagerResult eagerResult;
  int attempt = 0;
  boolean dirtySnapshot;
  do
  {
    if ( attempt == maxQueryExecutionAttempts )
    {
      return throwQueryExecutionException(
          "Unable to get clean data snapshot for query '%s' after %d attempts.", query, attempt );
    }
    attempt++;
    versionContext.initRead();
    Result result = executor.execute( query, parameters, context );
    eagerResult = new EagerResult( result, versionContext );
    eagerResult.consume();
    dirtySnapshot = versionContext.isDirty();
    if ( dirtySnapshot && result.getQueryStatistics().containsUpdates() )
    {
      return throwQueryExecutionException(
          "Unable to get clean data snapshot for query '%s' that perform updates.", query, attempt );
    }
  }
  while ( dirtySnapshot );
  return eagerResult;
}

代码示例来源:origin: neo4j/neo4j

if ( includeStats )
  writeStats( result.getQueryStatistics() );

代码示例来源:origin: neo4j-contrib/neo4j-apoc-procedures

private Object executeStatement(BlockingQueue<RowResult> queue, String stmt, Map<String, Object> params, boolean addStatistics, long timeout) throws InterruptedException {
  try (Result result = db.execute(stmt,params)) {
    long time = System.currentTimeMillis();
    int row = 0;
    while (result.hasNext()) {
      terminationGuard.check();
      queue.put(new RowResult(row++, result.next()));
    }
    if (addStatistics) {
      queue.offer(new RowResult(-1, toMap(result.getQueryStatistics(), System.currentTimeMillis() - time, row)), timeout,TimeUnit.SECONDS);
    }
    return row;
  }
}

代码示例来源:origin: neo4j-contrib/neo4j-apoc-procedures

private void addEventData(Map<String, Object> event) {
  Map<String, Object> params = map("params", event);
  Result result = db.execute("CREATE (e:Event {params})", params);
  int created = result.getQueryStatistics().getNodesCreated();
  assertTrue("Expected a node to be created", created == 1);
  String name = event.get("name").toString();
  if (!event.containsKey("toofar")) {
    spaceNodes.put(name, event);
    if (!event.containsKey("toosoon") && !event.containsKey("toolate")) {
      spaceTimeNodes.put(name, event);
    }
  }
  eventNodes.put(name, event);
}

代码示例来源:origin: neo4j-contrib/neo4j-apoc-procedures

@Procedure(mode = Mode.WRITE)
  @Description("apoc.example.movies() | Creates the sample movies graph")
  public Stream<ProgressInfo> movies() {
    long start = System.currentTimeMillis();
    String file = "movies.cypher";
    Result result = db.execute(Util.readResourceFile(file));
    QueryStatistics stats = result.getQueryStatistics();
    ProgressInfo progress = new ProgressInfo(file, "example movie database from themoviedb.org", "cypher")
        .update(stats.getNodesCreated(), stats.getRelationshipsCreated(), stats.getPropertiesSet())
        .done(start);
    result.close();
    return Stream.of(progress);
  }
}

代码示例来源:origin: neo4j-contrib/neo4j-apoc-procedures

public void expireNodes(long limit) {
  try {
    if (!Util.isWriteableInstance(db)) return;
    Result result = db.execute("MATCH (t:TTL) where t.ttl < timestamp() WITH t LIMIT {limit} DETACH DELETE t", Util.map("limit", limit));
    QueryStatistics stats = result.getQueryStatistics();
    result.close();
    if (stats.getNodesDeleted()>0) {
      log.info("TTL: Expired %d nodes %d relationships", stats.getNodesDeleted(), stats.getRelationshipsDeleted());
    }
  } catch (Exception e) {
    log.error("TTL: Error deleting expired nodes", e);
  }
}

代码示例来源:origin: org.neo4j/neo4j-cypher

@Override
public QueryStatistics queryStatistics()
{
  return originalResult.getQueryStatistics();
}

代码示例来源:origin: org.neo4j/neo4j-cypher

@Override
public QueryStatistics getQueryStatistics()
{
  return originalResult.getQueryStatistics();
}

代码示例来源:origin: hibernate/hibernate-ogm

private int summaryUpdates(Result result) {
  int updates = 0;
  updates += result.getQueryStatistics().getConstraintsAdded();
  updates += result.getQueryStatistics().getConstraintsRemoved();
  updates += result.getQueryStatistics().getNodesCreated();
  updates += result.getQueryStatistics().getNodesDeleted();
  updates += result.getQueryStatistics().getRelationshipsCreated();
  updates += result.getQueryStatistics().getRelationshipsDeleted();
  updates += result.getQueryStatistics().getLabelsAdded();
  updates += result.getQueryStatistics().getLabelsRemoved();
  updates += result.getQueryStatistics().getPropertiesSet();
  return updates;
}

代码示例来源:origin: org.neo4j/neo4j-ogm-embedded-driver

@Override
  public QueryStatisticsModel adapt(Result response) {
    try {
      org.neo4j.graphdb.QueryStatistics statistics = response.getQueryStatistics();
      String stats = mapper.writeValueAsString(statistics);
      stats = stats.replace("Deleted", "_deleted");
      stats = stats.replace("Added", "_added");
      stats = stats.replace("Updates", "_updates");
      stats = stats.replace("Created", "_created");
      stats = stats.replace("Set", "_set");
      stats = stats.replace("Removed", "_removed");
      stats = stats.replace("deletedNodes", "nodes_deleted");
      stats = stats.replace("deletedRelationships", "relationships_deleted");

      //Modify the string to include contains_updates as it is a calculated value
      String containsUpdates = ",\"contains_updates\":" + statistics.containsUpdates();
      int closingBraceIndex = stats.lastIndexOf("}");
      stats = stats.substring(0, closingBraceIndex) + containsUpdates + "}";

      return mapper.readValue(stats, QueryStatisticsModel.class);
    } catch (Exception e) {
      throw new ResultProcessingException("Could not read response statistics", e);
    }
  }
}

代码示例来源:origin: jexp/neo4j-shell-tools

@Override
public ElementCounter load(Reader reader, Reporter reporter, Config config) {
  Scanner scanner = new Scanner(reader).useDelimiter(READ_FILE_PATTERN);
  HashMap<String, Object> params = new HashMap<>();
  try (BatchTransaction tx = new BatchTransaction(db,BATCH_SIZE,reporter)) {
    while (scanner.hasNext()) {
      String query = scanner.next();
      if (query.trim().isEmpty()) { // begin or commit line
        tx.commit();
        continue;
      }
      params.clear();
      String queryWithParams = extractor.extract(query, params);
      Result result = db.execute(queryWithParams, params);
      ProgressReporter.update(result.getQueryStatistics(), reporter);
      tx.increment();
    }
  }
  return reporter.getTotal();
}

代码示例来源:origin: org.neo4j.app/neo4j-server

public CypherResultRepresentation( final Result result, boolean includeStats, boolean includePlan )
{
  super( RepresentationType.STRING );
  resultRepresentation = createResultRepresentation( result );
  columns = ListRepresentation.string( result.columns() );
  statsRepresentation = includeStats ? new CypherStatisticsRepresentation( result.getQueryStatistics() ) : null;
  plan = includePlan ? CypherPlanRepresentation.newFromProvider(planProvider(result)) : null;
}

代码示例来源:origin: neo4j-contrib/rabbithole

private CypherResult doExecuteQuery(String query, Map<String, Object> params, boolean canProfile) {
  params = params == null ? Collections.<String,Object>emptyMap() : params;
  long time=System.currentTimeMillis();
  Transaction tx = gdb.beginTx();
  KernelTransaction resumeTx;
  try {
    resumeTx = suspendTx(query);
    Result result = canProfile ? gdb.execute("PROFILE "+query,params) : gdb.execute(query,params);
    final Collection<Map<String, Object>> data = Iterators.asCollection(result);
    time = System.currentTimeMillis() - time;
    resumeTransaction(resumeTx);
    CypherResult cypherResult = new CypherResult(result.columns(), data, result.getQueryStatistics(), time, canProfile ? result.getExecutionPlanDescription() : null, prettify(query));
    tx.success();
    return cypherResult;
  } finally {
    tx.close();
    awaitIndexOnline(query);
  }
}

代码示例来源:origin: org.neo4j.doc/neo4j-cypher-docs

@Test
public void explain_returns_plan() throws Exception
{
  // START SNIPPET: explain_returns_plan
  Result result = db.execute( "EXPLAIN CREATE (user:User{name:{name}}) RETURN user" );
  assert result.getQueryExecutionType().isExplained();
  assert result.getQueryExecutionType().requestedExecutionPlanDescription();
  assert !result.hasNext();
  assert !result.getQueryStatistics().containsUpdates();
  assert result.columns().isEmpty();
  assert !result.getExecutionPlanDescription().hasProfilerStatistics();
  // END SNIPPET: explain_returns_plan
}

代码示例来源:origin: jexp/neo4j-shell-tools

private int executeOnInput(CSVReader reader, String query, CSVWriter writer, Config config, ProgressReporter reporter) throws IOException {
  Map<String, Object> params = createParams(reader);
  Map<String, Type> types = extractTypes(params);
  Map<String, String> replacements = computeReplacements(params, query);
  String[] input;
  boolean first = true;
  int outCount = 0;
  try (BatchTransaction tx = new BatchTransaction(getServer().getDb(),config.getBatchSize(),reporter)) {
    while ((input = reader.readNext()) != null) {
      Map<String, Object> queryParams = update(params, types, input);
      String newQuery = applyReplacements(query, replacements, queryParams);
      Result result = getEngine().execute(newQuery, queryParams);
      outCount += writeResult(result, writer, first);
      first = false;
      ProgressReporter.update(result.getQueryStatistics(), reporter);
      tx.increment();
    }
  }
  return outCount;
}

相关文章