Mercurial > hg > Members > nobuyasu > TestNeo4j
view src/wikigraph/ReadWikiLink.java @ 25:fbf0cf550b06 draft
fix ReadWikiLink.java
author | one |
---|---|
date | Thu, 30 Aug 2012 23:23:24 +0900 |
parents | 71fe482aaf32 |
children | cfbab7d87188 |
line wrap: on
line source
package wikigraph; import java.io.FileOutputStream; import java.io.IOException; import java.util.HashMap; import java.util.LinkedList; 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.searchAllNodes(); HashMap<String, WikiPage> wikiHash = ltn.getWikiPageHash(); int nodeIds[] = {1, 2, 3}; LinkedList<FileOutputStream> fosList = new LinkedList<FileOutputStream>(); for (int i: nodeIds) { String filename = String.format("./resource/NodeId_%d.dat", i); FileOutputStream fos = new FileOutputStream(filename); fos.write( String.format("# Node ID %d\n",i).getBytes()); fosList.add(fos); } for (int i=0; i<50; i++) { for (Node node : graphOpe.getAllNodes()) { ltn.computePageRank(node); } for (int index=0; index<nodeIds.length; index++){ FileOutputStream fos = fosList.get(index); printPageRankLog(fos, ltn, nodeIds[index], i); } } for (FileOutputStream fos: fosList) { fos.close(); } /* String title = "ブラックホール"; FileOutputStream fos = new FileOutputStream("./resource/nodePageRank.dat"); fos.write(("# page title: "+title+"\n").getBytes()); WikiPage w = wikiHash.get(title); for (int i = 0; i < 50; i++) { for (Node node : graphOpe.getAllNodes()) { ltn.computePageRank(node); } double rank = w.getRank(); printPageRankLog(fos, i, rank); fos.flush(); } fos.close(); */ } catch (Exception e) { e.printStackTrace(); } finally { tx.success(); tx.finish(); graphDb.shutdown(); } } public static void printPageRankLog(FileOutputStream fos, int x, double rank) throws IOException { fos.write( (x+" "+ rank+"\n").getBytes() ); fos.flush(); } public static void printPageRankLog(FileOutputStream fos, LinkToNode ltn, int nodeId, int x) throws IOException { double rank = ltn.getPageRank(ltn.getNode(nodeId)); fos.write( (x+" "+ rank+"\n").getBytes() ); fos.flush(); } }