Mercurial > hg > Members > nobuyasu > TestNeo4j
view src/wikigraph/ReadWikiLink.java @ 23:21902773e530 draft
fix ReadWikiLink.java
author | one |
---|---|
date | Tue, 28 Aug 2012 14:38:13 +0900 |
parents | f9ef906676eb |
children | 71fe482aaf32 |
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(); final long AllNodeNumber = ltn.searchAllNodes(); 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>(); HashMap<String,WikiPage> wikiHash = ltn.getWikiPageHash(); for (String title: wikiHash.keySet()) { WikiPage w = wikiHash.get(title); long id = w.getId(); Node node = graphDb.getNodeById(id); Iterable<Relationship> relIter = node.getRelationships(); long count = 0; // compute number of relationship. for (Relationship rel : relIter) { if (ltn.isHasLink(rel)) count++; } w.setOutLink(count); relHash.put(title, count); if (maxRelCount < count) { maxRelCount = count; tmpKey = title; } relKeyHash.put(count, id); } for (String title: wikiHash.keySet()) { System.out.println(title); } 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) { if (hasLinkPath.length() > 1) break; 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(); } } }