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

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

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

Result.stream介绍

暂无

代码示例

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

private void assertNoIndexSeeks( Result result )
{
  assertThat( result.stream().count(), is( 1L ) );
  String planDescription = result.getExecutionPlanDescription().toString();
  assertThat( planDescription, containsString( "NodeByLabel" ) );
  assertThat( planDescription, not( containsString( "IndexSeek" ) ) );
}

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

@Test
public void creatingNormalIndexWithFulltextProviderMustThrow()
{
  db = createDatabase();
  assertThat( FulltextIndexProviderFactory.DESCRIPTOR.name(), is( "fulltext-1.0" ) ); // Sanity check that this test is up to date.
  try ( Transaction tx = db.beginTx() )
  {
    db.execute( "call db.createIndex( \":User(searchableString)\", \"" + FulltextIndexProviderFactory.DESCRIPTOR.name() + "\" );" ).close();
    tx.success();
  }
  catch ( QueryExecutionException e )
  {
    assertThat( e.getMessage(), containsString( "only supports fulltext index descriptors" ) );
  }
  try ( Transaction tx = db.beginTx() )
  {
    long indexCount = db.execute( DB_INDEXES ).stream().count();
    assertThat( indexCount, is( 0L ) );
    tx.success();
  }
}

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

try ( Result result = db.execute( format( QUERY_RELS, "rels", "value" ) ) )
  assertThat( result.stream().count(), is( 0L ) );

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

try ( Result result = db.execute( format( QUERY_NODES, "nodes", "value" ) ) )
  assertThat( result.stream().count(), is( 0L ) );

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

assertThat( result.stream().count(), is( 0L ) );

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

assertThat( result.stream().count(), is( 0L ) );

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

public <T> List<T> queryForNode(String query, Function<Map<String, Object>, T> transformer) {
    long start = currentTimeMillis();
    try (Transaction tx = db.beginTx()) {
      try (Result nodes = db.execute(query, singletonMap("value", value))) {
        return nodes.stream().map(transformer).collect(Collectors.toList());
      } finally {
        tx.success();
        if (log.isDebugEnabled())
          log.debug(format("(%s) search on label:%s and prop:%s took %d",
              Thread.currentThread(), label, prop, currentTimeMillis() - start));
      }
    }
  }
}

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

@Override
          public AnyValue apply(org.neo4j.kernel.api.proc.Context ctx, AnyValue[] input) throws ProcedureException {
            Map<String, Object> params = functionParams(input, inputs, defaultValueMapper);
            try (Result result = api.execute(statement, params)) {
//                resourceTracker.registerCloseableResource(result); // TODO
              if (!result.hasNext()) return null;
              if (output.isEmpty()) {
                return ValueUtils.of(result.stream().collect(Collectors.toList()));
              }
              List<String> cols = result.columns();
              if (cols.isEmpty()) return null;
              if (!forceSingle && outType instanceof ListType) {
                ListType listType = (ListType) outType;
                AnyType innerType = listType.innerType();
                if (innerType instanceof MapType)
                  return ValueUtils.of(result.stream().collect(Collectors.toList()));
                if (cols.size() == 1)
                  return ValueUtils.of(result.stream().map(row -> row.get(cols.get(0))).collect(Collectors.toList()));
              } else {
                Map<String, Object> row = result.next();
                if (outType instanceof MapType) return ValueUtils.of(row);
                if (cols.size() == 1) return ValueUtils.of(row.get(cols.get(0)));
              }
              throw new IllegalStateException("Result mismatch " + cols + " output type is " + output);
            }
          }
        }, true);

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

@Procedure("apoc.case")
@Description("apoc.case([condition, query, condition, query, ...], elseQuery:'', params:{}) yield value - given a list of conditional / read-only query pairs, executes the query associated with the first conditional evaluating to true (or the else query if none are true) with the given parameters")
public Stream<MapResult> whenCase(@Name("conditionals") List<Object> conditionals, @Name(value="elseQuery", defaultValue = "") String elseQuery, @Name(value="params", defaultValue = "") Map<String, Object> params) {
  if (params == null) params = Collections.emptyMap();
  if (conditionals.size() % 2 != 0) {
    throw new IllegalArgumentException("Conditionals must be an even-sized collection of boolean, query entries");
  }
  Iterator caseItr = conditionals.iterator();
  while (caseItr.hasNext()) {
    boolean condition = (Boolean) caseItr.next();
    String ifQuery = (String) caseItr.next();
    if (condition) {
      return db.execute(withParamMapping(ifQuery, params.keySet()), params).stream().map(MapResult::new);
    }
  }
  if (elseQuery.isEmpty()) {
    return Stream.of(new MapResult(Collections.emptyMap()));
  } else {
    return db.execute(withParamMapping(elseQuery, params.keySet()), params).stream().map(MapResult::new);
  }
}

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

@Procedure(mode = WRITE)
@Description("apoc.cypher.doIt(fragment, params) yield value - executes writing fragment with the given parameters")
public Stream<MapResult> doIt(@Name("cypher") String statement, @Name("params") Map<String, Object> params) {
  if (params == null) params = Collections.emptyMap();
  return db.execute(withParamMapping(statement, params.keySet()), params).stream().map(MapResult::new);
}

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

@Procedure
@Description("apoc.cypher.run(fragment, params) yield value - executes reading fragment with the given parameters")
public Stream<MapResult> run(@Name("cypher") String statement, @Name("params") Map<String, Object> params) {
  if (params == null) params = Collections.emptyMap();
  return db.execute(withParamMapping(statement, params.keySet()), params).stream().map(MapResult::new);
}

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

@Procedure("apoc.help")
  @Description("Provides descriptions of available procedures. To narrow the results, supply a search string. To also search in the description text, append + to the end of the search string.")
  public Stream<HelpResult> info(@Name("proc") String name) throws Exception {
    boolean searchText = false;
    if (name != null) {
      name = name.trim();
      if (name.endsWith("+")) {
        name = name.substring(0, name.lastIndexOf('+')).trim();
        searchText = true;
      }
    }
    String filter = " WHERE name starts with 'apoc.' " +
        " AND ({name} IS NULL  OR toLower(name) CONTAINS toLower({name}) " +
        " OR ({desc} IS NOT NULL AND toLower(description) CONTAINS toLower({desc}))) " +
        "RETURN type, name, description, signature ";

    String query = "WITH 'procedure' as type CALL dbms.procedures() yield name, description, signature " + filter +
        " UNION ALL " +
        "WITH 'function' as type CALL dbms.functions() yield name, description, signature " + filter;
    return db.execute(query, map("name", name, "desc", searchText ? name : null))
        .stream().map(HelpResult::new);
  }
}

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

@Procedure("apoc.when")
@Description("apoc.when(condition, ifQuery, elseQuery:'', params:{}) yield value - based on the conditional, executes read-only ifQuery or elseQuery with the given parameters")
public Stream<MapResult> when(@Name("condition") boolean condition, @Name("ifQuery") String ifQuery, @Name(value="elseQuery", defaultValue = "") String elseQuery, @Name(value="params", defaultValue = "") Map<String, Object> params) {
  if (params == null) params = Collections.emptyMap();
  String targetQuery = condition ? ifQuery : elseQuery;
  if (targetQuery.isEmpty()) {
    return Stream.of(new MapResult(Collections.emptyMap()));
  } else {
    return db.execute(withParamMapping(targetQuery, params.keySet()), params).stream().map(MapResult::new);
  }
}

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

@Description("apoc.graph.fromCypher('kernelTransaction',{params},'name',{properties}) - creates a virtual graph object for later processing")
  @Procedure
  public Stream<VirtualGraph> fromCypher(@Name("kernelTransaction") String statement,  @Name("params") Map<String,Object> params,@Name("name") String name,  @Name("properties") Map<String,Object> properties) {
    params = params == null ? Collections.emptyMap() : params;
    Set<Node> nodes = new HashSet<>(1000);
    Set<Relationship> rels = new HashSet<>(1000);
    Map<String,Object> props = new HashMap<>(properties);
    db.execute(Cypher.withParamMapping(statement, params.keySet()), params).stream().forEach(row -> {
      row.forEach((k,v) -> {
        if (!extract(v,nodes,rels)) {
          props.put(k,v);
        }
      });

    });
    return Stream.of(new VirtualGraph(name,nodes,rels,props));
  }
}

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

@Procedure
public Stream<MapResult> parallel(@Name("fragment") String fragment, @Name("params") Map<String, Object> params, @Name("parallelizeOn") String key) {
  if (params == null) return run(fragment, params);
  if (key == null || !params.containsKey(key))
    throw new RuntimeException("Can't parallelize on key " + key + " available keys " + params.keySet());
  Object value = params.get(key);
  if (!(value instanceof Collection))
    throw new RuntimeException("Can't parallelize a non collection " + key + " : " + value);
  final String statement = withParamMapping(fragment, params.keySet());
  Collection<Object> coll = (Collection<Object>) value;
  return coll.parallelStream().flatMap((v) -> {
    terminationGuard.check();
    Map<String, Object> parallelParams = new HashMap<>(params);
    parallelParams.replace(key, v);
    return db.execute(statement, parallelParams).stream().map(MapResult::new);
  });
  /*
  params.entrySet().stream()
      .filter( e -> asCollection(e.getValue()).size() > 100)
      .map( (e) -> (Map.Entry<String,Collection>)(Map.Entry)e )
      .max( (max,e) -> e.getValue().size() )
      .map( (e) -> e.getValue().parallelStream().map( (v) -> {
        Map map = new HashMap<>(params);
        map.put(e.getKey(),as)
      }));
  return db.execute(statement,params).stream().map(MapResult::new);
  */
}

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

@Test
public void testLoadXmlWithImport() {
  testCall(db, "call apoc.xml.import('file:src/test/resources/xml/humboldt_soemmering01_1791.TEI-P5.xml', {createNextWordRelationships: true}) yield node",
      row -> {
        assertNotNull(row.get("node"));
      });
  testResult(db, "match (n) return labels(n)[0] as label, count(*) as count", result -> {
    final Map<String, Long> resultMap = result.stream().collect(Collectors.toMap(o -> (String)o.get("label"), o -> (Long)o.get("count")));
    assertEquals(2l, (long)resultMap.get("XmlProcessingInstruction"));
    assertEquals(1l, (long)resultMap.get("XmlDocument"));
    assertEquals(1737l, (long)resultMap.get("XmlWord"));
    assertEquals(454l, (long)resultMap.get("XmlTag"));
  });
  // no node more than one NEXT/NEXT_SIBLING
  testCallEmpty(db, "match (n) where size( (n)-[:NEXT]->() ) > 1 return n", null);
  testCallEmpty(db, "match (n) where size( (n)-[:NEXT_SIBLING]->() ) > 1 return n", null);
  // no node more than one IS_FIRST_CHILD / IS_LAST_CHILD
  testCallEmpty(db, "match (n) where size( (n)<-[:FIRST_CHILD_OF]-() ) > 1 return n", null);
  testCallEmpty(db, "match (n) where size( (n)<-[:LAST_CHILD_OF]-() ) > 1 return n", null);
  // NEXT_WORD relationship do connect all word nodes
  testResult(db, "match p=(:XmlDocument)-[:NEXT_WORD*]->(e:XmlWord) where not (e)-[:NEXT_WORD]->() return length(p) as len",
      result -> {
        Map<String, Object> r = Iterators.single(result);
        assertEquals(1737l, r.get("len"));
      });
}

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

Map<String, PropertyContainer> pcs = new HashMap<>();
db.execute("MATCH (n) RETURN n.id as id, n UNION ALL MATCH ()-[n]->() RETURN n.id as id, n")
    .stream().forEach(row -> pcs.put(row.get("id").toString(), (PropertyContainer)row.get("n")));

代码示例来源:origin: jbarrasa/neosemantics

@Procedure(mode = Mode.READ)
public Stream<NodeResult> listSchemas(@Name(value="searchString",defaultValue = "") String searchString) {
  Map<String,Object> params = new HashMap<>();
  params.put("searchString",searchString);
  String cypher = (searchString.trim().equals("")?"MATCH (mns:_MapNs) RETURN mns ":
      "MATCH (mns:_MapNs) WHERE mns._ns CONTAINS $searchString OR mns._prefix CONTAINS $searchString RETURN mns ");
  return db.execute(cypher, params).stream().map(n -> (Node) n.get("mns")).map(NodeResult::new);
}

代码示例来源:origin: org.neo4j/graph-algorithms-algo

@Procedure("algo.list")
@Description("CALL algo.list - lists all algorithm procedures, their description and signature")
public Stream<ListResult> list(@Name(value = "name", defaultValue = "") String name) {
  return db.execute(QUERY, singletonMap("name", name)).stream().map(ListResult::new);
}

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

@Procedure("algo.list")
@Description("CALL algo.list - lists all algorithm procedures, their description and signature")
public Stream<ListResult> list(@Name(value = "name", defaultValue = "") String name) {
  return db.execute(QUERY, singletonMap("name", name)).stream().map(ListResult::new);
}

相关文章