Mercurial > hg > Members > nobuyasu > TestNeo4j
view src/wikigraph/ReadWikiLink.java @ 21:f9ef906676eb draft
modify LinkToNode.java
author | one |
---|---|
date | Tue, 28 Aug 2012 14:04:15 +0900 |
parents | 2c3a10047ec6 |
children | 21902773e530 |
line wrap: on
line source
package wikigraph; import java.util.HashMap; import java.util.Map; import org.neo4j.graphdb.GraphDatabaseService; import org.neo4j.graphdb.Node; import org.neo4j.graphdb.Path; import org.neo4j.graphdb.Relationship; import org.neo4j.graphdb.Transaction; import org.neo4j.graphdb.traversal.Traverser; import org.neo4j.kernel.EmbeddedGraphDatabase; import org.neo4j.tooling.GlobalGraphOperations; import wikigraph.LinkToNode.RelTypes; public class ReadWikiLink { public static void main(String[] args) { GraphDatabaseService graphDb = new EmbeddedGraphDatabase("wikiLinkDB"); GlobalGraphOperations graphOpe = GlobalGraphOperations.at(graphDb); LinkToNode ltn = new LinkToNode(graphDb, graphOpe); Transaction tx = graphDb. beginTx(); try { final long AllNodeNumber = ltn.searchPageTitleAllNodes(); // Key: page_title value: Node ID HashMap<String,Long> pageIdHash = ltn.getPageIdTable(); HashMap<String,Long> pageRankHash = ltn.getPageRankTable(); long maxRelCount = 0; String tmpKey=""; // relHash record number of relationships of each node. // Key: page_title value: number of relationships HashMap<String,Long> relHash = new HashMap<String,Long>(); // relKeyHash // key: number of relationships value: ID HashMap<Long,Long> relKeyHash = new HashMap<Long,Long>(); for (String key : pageIdHash.keySet()) { long id = pageIdHash.get(key); Node node = graphDb.getNodeById(id); Iterable<Relationship> relIter = node.getRelationships(); long count = 0; for (Relationship rel : relIter) { if ( ltn.isHasLink(rel)) count++; } relHash.put(key, count); if (maxRelCount < count ) { maxRelCount = count; tmpKey = key; } relKeyHash.put(count, id); } System.out.println("AllNodeNumber = "+ AllNodeNumber); System.out.println("Most :\n"+tmpKey+":"+maxRelCount); String output = ""; Node n = graphDb.getNodeById(1); Traverser hasLinkTraverser = ltn.getInHasLink( n ); System.out.println(n.getProperty(LinkToNode.PAGE_TITLE)); for (Path hasLinkPath : hasLinkTraverser) { output = "At depth" + hasLinkPath.length() + " => " + hasLinkPath.endNode().getProperty(LinkToNode.PAGE_TITLE) + "\n"; System.out.println(output); } System.out.println(output); } catch (Exception e) { e.printStackTrace(); } finally { tx.success(); tx.finish(); graphDb.shutdown(); } } }