本文整理汇总了Java中org.neo4j.graphdb.Relationship.getStartNode方法的典型用法代码示例。如果您正苦于以下问题:Java Relationship.getStartNode方法的具体用法?Java Relationship.getStartNode怎么用?Java Relationship.getStartNode使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.neo4j.graphdb.Relationship
的用法示例。
在下文中一共展示了Relationship.getStartNode方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getParentsConnectedBy
import org.neo4j.graphdb.Relationship; //导入方法依赖的package包/类
public static List<Node> getParentsConnectedBy(Node node, String edgeType)
{
List<Node> retval = new LinkedList<Node>();
long nodeId = node.getId();
Iterable<Relationship> rels = node.getRelationships();
for (Relationship rel : rels)
{
if (!rel.getType().name().equals(edgeType))
continue;
Node parentNode = rel.getStartNode();
if (parentNode.getId() == nodeId)
continue;
retval.add(parentNode);
}
return retval;
}
示例2: getAdjacentNodes
import org.neo4j.graphdb.Relationship; //导入方法依赖的package包/类
public static Iterable<Node> getAdjacentNodes(final Node sourceNode, final RelationshipType relationshipType, final Direction direction, final Label targetNodeLabel) {
final Collection<Node> nodes = new ArrayList<>();
final Iterable<Relationship> relationships = sourceNode.getRelationships(relationshipType, direction);
for (final Relationship relationship : relationships) {
final Node candidate;
switch (direction) {
case INCOMING:
candidate = relationship.getStartNode();
break;
case OUTGOING:
candidate = relationship.getEndNode();
break;
default:
throw new UnsupportedOperationException("Direction: " + direction + " not supported.");
}
if (!candidate.hasLabel(targetNodeLabel)) {
continue;
}
nodes.add(candidate);
}
return nodes;
}
示例3: getStatementForASTNode
import org.neo4j.graphdb.Relationship; //导入方法依赖的package包/类
public static Node getStatementForASTNode(Node node)
{
Node n = node;
Node parent = node;
while (true)
{
try
{
Object property = n.getProperty(NodeKeys.IS_CFG_NODE);
return n;
}
catch (NotFoundException ex)
{
}
Iterable<Relationship> rels = n
.getRelationships(Direction.INCOMING);
for (Relationship rel : rels)
{
parent = rel.getStartNode();
break;
}
if (n == parent)
return null;
n = parent;
}
}
示例4: topReorderedBoostedByCartOrder
import org.neo4j.graphdb.Relationship; //导入方法依赖的package包/类
static ArrayList<Node> topReorderedBoostedByCartOrder(Node order) {
ArrayList<Integer> sizes = new ArrayList<>();
HashMap<Node, Double> products = new HashMap<>();
Relationship ordered = order.getSingleRelationship(RelationshipTypes.ORDERED_BY, Direction.OUTGOING);
Node user = ordered.getEndNode();
for (Relationship r1 : user.getRelationships(Direction.INCOMING, RelationshipTypes.ORDERED_BY)) {
Node prevOrder = r1.getStartNode();
sizes.add(prevOrder.getDegree(RelationshipTypes.HAS, Direction.OUTGOING));
for (Relationship r2 : prevOrder.getRelationships(Direction.OUTGOING, RelationshipTypes.HAS)) {
Node product = r2.getEndNode();
Double count = 1.0;
Double boost = 0.0;
// Products added to the cart earlier are more likely to be re-ordered, give them a boost
switch (String.valueOf(r2.getProperty("order",99))){
case "1" : boost = 0.3; break;
case "2" : boost = 0.2; break;
case "3" : boost = 0.1; break;
}
if (products.containsKey(product)) {
count = 1.0 + products.get(product);
}
products.put(product, count + boost);
}
}
Long average = Math.round(sizes.stream().mapToInt(i -> i).average().orElse(0));
List<Node> topProducts = products.entrySet().stream()
.sorted(Map.Entry.comparingByValue(Comparator.reverseOrder()))
.limit(average)
.map(Map.Entry::getKey)
.collect(Collectors.toList());
return (ArrayList<Node>) topProducts;
}
示例5: prepare
import org.neo4j.graphdb.Relationship; //导入方法依赖的package包/类
private void prepare() {
List<String> entities = new ArrayList<>();
List<String> relations = new ArrayList<>();
List<Triple<String, String, String>> triples = new ArrayList<>();
try (Transaction tx = db.beginTx()) {
for (Node node : db.getAllNodes()) {
if (!node.hasLabel(Label.label(JavaCodeExtractor.CLASS)) &&
!node.hasLabel(Label.label(JavaCodeExtractor.INTERFACE)) &&
!node.hasLabel(Label.label(JavaCodeExtractor.METHOD)) &&
!node.hasLabel(Label.label(JavaCodeExtractor.FIELD)))
continue;
entities.add("" + node.getId());
}
for (Relationship rel : db.getAllRelationships()) {
Node node1 = rel.getStartNode();
if (!node1.hasLabel(Label.label(JavaCodeExtractor.CLASS)) &&
!node1.hasLabel(Label.label(JavaCodeExtractor.INTERFACE)) &&
!node1.hasLabel(Label.label(JavaCodeExtractor.METHOD)) &&
!node1.hasLabel(Label.label(JavaCodeExtractor.FIELD)))
continue;
Node node2 = rel.getEndNode();
if (!node2.hasLabel(Label.label(JavaCodeExtractor.CLASS)) &&
!node2.hasLabel(Label.label(JavaCodeExtractor.INTERFACE)) &&
!node2.hasLabel(Label.label(JavaCodeExtractor.METHOD)) &&
!node2.hasLabel(Label.label(JavaCodeExtractor.FIELD)))
continue;
triples.add(new ImmutableTriple<>("" + node1.getId(), "" + node2.getId(), rel.getType().name()));
if (!relations.contains(rel.getType().name()))
relations.add(rel.getType().name());
}
tx.success();
}
transE.prepare(entities, relations, triples);
}
示例6: getMetadataGroupKeyValueDocuments
import org.neo4j.graphdb.Relationship; //导入方法依赖的package包/类
protected Response getMetadataGroupKeyValueDocuments(final String group, final String key, final String value) {
StreamingOutput stream = new StreamingOutput()
{
@Override
public void write( OutputStream os ) throws IOException, WebApplicationException
{
try ( Transaction tx = database.beginTx() ) {
JsonGenerator jg = objectMapper.getFactory().createGenerator(os, JsonEncoding.UTF8);
IndexManager index = database.index();
Index<Relationship> metadataValues = index.forRelationships("HAS_METADATUM");
List<String> documentsSeen = new ArrayList<String>();
jg.writeStartArray();
System.out.println("VALUE: "+value);
for (Relationship hasMetadatum : metadataValues.get("value", value)) {
Node metadatum = hasMetadatum.getEndNode();
String mGroup = (String) metadatum.getProperty("group");
String mKey = (String) metadatum.getProperty("key");
if (mGroup.equals(group) && mKey.equals(key)) {
Node document = hasMetadatum.getStartNode();
String xmlid = (String) document.getProperty("xmlid");
if (!documentsSeen.contains(xmlid)) {
jg.writeString(xmlid);
documentsSeen.add(xmlid);
}
}
}
jg.writeEndArray();
jg.flush();
tx.success();
}
}
};
return Response.ok().entity( stream ).type( MediaType.APPLICATION_JSON ).build();
}
示例7: doGetForRelationships
import org.neo4j.graphdb.Relationship; //导入方法依赖的package包/类
@Test
public void doGetForRelationships()
{
RelationshipIndex roles = graphDb.index().forRelationships( "roles" );
// START SNIPPET: getSingleRelationship
Relationship persephone = roles.get( "name", "Persephone" ).getSingle();
Node actor = persephone.getStartNode();
Node movie = persephone.getEndNode();
// END SNIPPET: getSingleRelationship
assertEquals( "Monica Bellucci", actor.getProperty( "name" ) );
assertEquals( "The Matrix Reloaded", movie.getProperty( "title" ) );
@SuppressWarnings("serial") List<String> expectedActors = new ArrayList<String>()
{
{
add( "Keanu Reeves" );
add( "Keanu Reeves" );
}
};
List<String> foundActors = new ArrayList<>();
// START SNIPPET: getRelationships
for ( Relationship role : roles.get( "name", "Neo" ) )
{
// this will give us Reeves twice
Node reeves = role.getStartNode();
// END SNIPPET: getRelationships
foundActors.add( (String) reeves.getProperty( "name" ) );
// START SNIPPET: getRelationships
}
// END SNIPPET: getRelationships
assertEquals( expectedActors, foundActors );
}
示例8: compute
import org.neo4j.graphdb.Relationship; //导入方法依赖的package包/类
@Override
public void compute(Relationship r) {
Node n1 = r.getStartNode();
Node n2 = r.getEndNode();
if( n1.getProperty(attName) == n2.getProperty(attName) ) {
double weight = r.hasProperty("weight") ? (double) r.getProperty("weight") : 1.0;
eii += weight;
}
}
示例9: singleNeighborhood
import org.neo4j.graphdb.Relationship; //导入方法依赖的package包/类
public static Node singleNeighborhood(Node node, RelationshipTypes rel, Direction direction, boolean startNode) {
Iterator<Relationship> it = node.getRelationships(rel, direction).iterator();
if ( !it.hasNext() ){
return null;
}
Relationship r = it.next();
if (startNode)
return r.getStartNode();
return r.getEndNode();
}
示例10: getMetadataGroupKeyValueDocumentsWithCounts
import org.neo4j.graphdb.Relationship; //导入方法依赖的package包/类
protected Response getMetadataGroupKeyValueDocumentsWithCounts(final String group, final String key, final String value) {
StreamingOutput stream = new StreamingOutput()
{
@Override
public void write( OutputStream os ) throws IOException, WebApplicationException
{
try ( Transaction tx = database.beginTx() ) {
JsonGenerator jg = objectMapper.getFactory().createGenerator(os, JsonEncoding.UTF8);
IndexManager index = database.index();
Index<Relationship> metadataValues = index.forRelationships("HAS_METADATUM");
List<String> documentsSeen = new ArrayList<String>();
jg.writeStartArray();
System.out.println("VALUE: "+value);
for (Relationship hasMetadatum : metadataValues.get("value", value)) {
Node metadatum = hasMetadatum.getEndNode();
String mGroup = (String) metadatum.getProperty("group");
String mKey = (String) metadatum.getProperty("key");
if (mGroup.equals(group) && mKey.equals(key)) {
Node document = hasMetadatum.getStartNode();
String xmlid = (String) document.getProperty("xmlid");
if (!documentsSeen.contains(xmlid)) {
jg.writeStartObject();
jg.writeStringField("xmlid", xmlid);
Object tokenCount = document.getProperty("token_count");
if (tokenCount instanceof Long)
jg.writeNumberField("token_count", (Long) tokenCount);
else if (tokenCount instanceof Integer)
jg.writeNumberField("token_count", (Integer) tokenCount);
jg.writeEndObject();
documentsSeen.add(xmlid);
}
}
}
jg.writeEndArray();
jg.flush();
tx.success();
}
}
};
return Response.ok().entity( stream ).type( MediaType.APPLICATION_JSON ).build();
}
示例11: doQueriesForRelationships
import org.neo4j.graphdb.Relationship; //导入方法依赖的package包/类
@Test
public void doQueriesForRelationships()
{
IndexManager index = graphDb.index();
RelationshipIndex roles = index.forRelationships( "roles" );
Index<Node> actors = graphDb.index().forNodes( "actors" );
Index<Node> movies = index.forNodes( "movies" );
Node reeves = actors.get( "name", "Keanu Reeves" ).getSingle();
Node theMatrix = movies.get( "title", "The Matrix" ).getSingle();
// START SNIPPET: queryForRelationships
// find relationships filtering on start node
// using exact matches
IndexHits<Relationship> reevesAsNeoHits;
reevesAsNeoHits = roles.get( "name", "Neo", reeves, null );
Relationship reevesAsNeo = reevesAsNeoHits.iterator().next();
reevesAsNeoHits.close();
// END SNIPPET: queryForRelationships
assertEquals( "Neo", reevesAsNeo.getProperty( "name" ) );
Node actor = reevesAsNeo.getStartNode();
assertEquals( reeves, actor );
// START SNIPPET: queryForRelationships
// find relationships filtering on end node
// using a query
IndexHits<Relationship> matrixNeoHits;
matrixNeoHits = roles.query( "name", "*eo", null, theMatrix );
Relationship matrixNeo = matrixNeoHits.iterator().next();
matrixNeoHits.close();
// END SNIPPET: queryForRelationships
assertEquals( "Neo", matrixNeo.getProperty( "name" ) );
actor = matrixNeo.getStartNode();
assertEquals( reeves, actor );
// START SNIPPET: queryForRelationshipType
// find relationships filtering on end node
// using a relationship type.
// this is how to add it to the index:
roles.add( reevesAsNeo, "type", reevesAsNeo.getType().name() );
// Note that to use a compound query, we can't combine committed
// and uncommitted index entries, so we'll commit before querying:
tx.success();
tx.close();
// and now we can search for it:
try ( Transaction tx = graphDb.beginTx() )
{
IndexHits<Relationship> typeHits = roles.query( "type:ACTS_IN AND name:Neo", null, theMatrix );
Relationship typeNeo = typeHits.iterator().next();
typeHits.close();
// END SNIPPET: queryForRelationshipType
assertThat(typeNeo, inTx( graphDb, hasProperty( "name" ).withValue( "Neo" ) ));
actor = matrixNeo.getStartNode();
assertEquals( reeves, actor );
}
}
示例12: populateGraph
import org.neo4j.graphdb.Relationship; //导入方法依赖的package包/类
static void populateGraph(GraphDatabaseService graphDb) {
try (Transaction tx = graphDb.beginTx()) {
Relationship r1 = addRelationship("http://x.org/a_a", "http://x.org/a_b", OwlRelationships.RDFS_SUBCLASS_OF);
Relationship r2 = addRelationship("http://x.org/a_b", "http://x.org/a_c", OwlRelationships.RDFS_SUBCLASS_OF);
Relationship r3 = addRelationship("http://x.org/a_c", "http://x.org/a_d", OwlRelationships.RDF_TYPE);
Relationship r4 = addRelationship("http://x.org/a_e", "http://x.org/a_d", RelationshipType.withName("CAUSES"));
Relationship r5 = addRelationship("http://x.org/a_f", "http://x.org/a_e", RelationshipType.withName("partOf"));
graph.setRelationshipProperty(r4.getId(), CommonProperties.IRI, "http://x.org/a_causes");
addRelationship("http://x.org/a_causes_parent", "http://x.org/a_causes", OwlRelationships.RDFS_SUB_PROPERTY_OF);
addRelationship("_:anon", "http://x.org/a_b", OwlRelationships.RDFS_SUBCLASS_OF);
r1.getEndNode().setProperty(NodeProperties.LABEL, "A");
r2.getStartNode().setProperty(NodeProperties.LABEL, "C");
a = r1.getEndNode();
b = r2.getEndNode();
c = r2.getStartNode();
d = r3.getStartNode();
e = r4.getEndNode();
f = r5.getEndNode();
Node assn = createNode("http://x.org/a_assn");
Node assnParent = createNode("http://x.org/a_assn_parent");
assn.createRelationshipTo(assnParent, OwlRelationships.RDFS_SUBCLASS_OF);
Node evidence = createNode("http://x.org/a_evidence");
assn.createRelationshipTo(evidence, RelationshipType.withName("http://purl.obolibrary.org/obo/RO_0002558"));
assn.createRelationshipTo(d, RelationshipType.withName("http://purl.org/oban/association_has_subject"));
assn.createRelationshipTo(e, RelationshipType.withName("http://purl.org/oban/association_has_object"));
Node gene = createNode("http://x.org/gene");
gene.addLabel(Label.label("gene"));
Node ortholog = createNode("http://x.org/gene_ortholog");
ortholog.addLabel(Label.label("gene"));
gene.createRelationshipTo(ortholog, RelationshipType.withName("http://purl.obolibrary.org/obo/RO_HOM0000017"));
Node foo = createNode("http://x.org/gene");
foo.addLabel(Label.label("gene"));
Node forebrain = createNode("http://purl.obolibrary.org/obo/UBERON_0001890");
forebrain.addLabel(Label.label("forebrain"));
forebrain.addLabel(Label.label("anatomical entity"));
Relationship foo2forebrain = foo.createRelationshipTo(forebrain, RelationshipType.withName("http://purl.obolibrary.org/obo/RO_0002206"));
foo2forebrain.setProperty(CommonProperties.IRI, "http://purl.obolibrary.org/obo/RO_0002206");
Node brain = createNode("http://purl.obolibrary.org/obo/UBERON_0000955");
brain.addLabel(Label.label("brain"));
brain.addLabel(Label.label("anatomical entity"));
Relationship forebrain2brain = forebrain.createRelationshipTo(brain, RelationshipType.withName("http://purl.obolibrary.org/obo/BFO_0000050"));
forebrain2brain.setProperty(CommonProperties.IRI, "http://purl.obolibrary.org/obo/BFO_0000050");
Node neuralTube = createNode("http://purl.obolibrary.org/obo/UBERON_0001049");
neuralTube.addLabel(Label.label("neural tube"));
neuralTube.addLabel(Label.label("anatomical entity"));
Relationship brain2neuralTube = brain.createRelationshipTo(neuralTube, RelationshipType.withName("http://purl.obolibrary.org/obo/RO_0002202"));
brain2neuralTube.setProperty(CommonProperties.IRI, "http://purl.obolibrary.org/obo/RO_0002202");
Node head = createNode("http://purl.obolibrary.org/obo/UBERON_0000033");
head.addLabel(Label.label("head"));
head.addLabel(Label.label("anatomical entity"));
Relationship brain2head = brain.createRelationshipTo(head, RelationshipType.withName("http://purl.obolibrary.org/obo/BFO_0000050"));
brain2head.setProperty(CommonProperties.IRI, "http://purl.obolibrary.org/obo/BFO_0000050");
Node bodyPart = createNode("http://x.org/body_part");
bodyPart.addLabel(Label.label("body part"));
bodyPart.addLabel(Label.label("anatomical entity"));
Relationship head2bodyPart = head.createRelationshipTo(bodyPart, OwlRelationships.RDFS_SUBCLASS_OF);
head2bodyPart.setProperty(CommonProperties.IRI, OwlRelationships.RDFS_SUBCLASS_OF.name());
Node anatomicalEntity = createNode("http://purl.obolibrary.org/obo/UBERON_0001062");
anatomicalEntity.addLabel(Label.label("anatomical entity"));
Relationship bodyPart2anatomicalEntity = bodyPart.createRelationshipTo(anatomicalEntity, OwlRelationships.RDFS_SUBCLASS_OF);
bodyPart2anatomicalEntity.setProperty(CommonProperties.IRI, OwlRelationships.RDFS_SUBCLASS_OF.name());
tx.success();
}
}