Mercurial > hg > Members > nobuyasu > TestNeo4j
diff src/wikigraph/LinkToNode.java @ 26:cfbab7d87188 draft
Page Rank in ascendiang order in ReadWikiLin.java
author | one |
---|---|
date | Fri, 31 Aug 2012 20:17:49 +0900 |
parents | fbf0cf550b06 |
children | 4c0b10bb5192 |
line wrap: on
line diff
--- a/src/wikigraph/LinkToNode.java Thu Aug 30 23:23:24 2012 +0900 +++ b/src/wikigraph/LinkToNode.java Fri Aug 31 20:17:49 2012 +0900 @@ -14,8 +14,6 @@ import org.neo4j.kernel.Traversal; import org.neo4j.tooling.GlobalGraphOperations; -import wikigraph.Neo4jTest.RelTypes; - public class LinkToNode { GraphDatabaseService graphDb; @@ -117,16 +115,13 @@ long searchAllNodes() { AllNodeNumber = 0; for (Node n : graphOpe.getAllNodes()) { - - n.setProperty(PAGE_RANK,(double)0.0); - if (n.hasProperty(PAGE_TITLE) || n.hasProperty(PAGE_RANK)) { WikiPage wiki = new WikiPage(n); pageIdTable.put((String) n.getProperty(PAGE_TITLE), n.getId()); pageRankTable.put((String) n.getProperty(PAGE_TITLE), (Double) n.getProperty(PAGE_RANK)); - wiki.setInLink(computeInHasLink(n)); - wiki.setOutLink(computeOutHasLink(n)); + wiki.setInHasLink(computeInHasLink(n)); + wiki.setOutHasLink(computeOutHasLink(n)); wikiPageHash.put((String) n.getProperty(PAGE_TITLE), wiki); AllNodeNumber++; } @@ -141,8 +136,8 @@ pageIdTable.put((String) n.getProperty(PAGE_TITLE), n.getId()); pageRankTable.put((String) n.getProperty(PAGE_TITLE), (Double) n.getProperty(PAGE_RANK)); - wiki.setInLink(computeInHasLink(n)); - wiki.setOutLink(computeOutHasLink(n)); + wiki.setInHasLink(computeInHasLink(n)); + wiki.setOutHasLink(computeOutHasLink(n)); wikiPageHash.put((String) n.getProperty(PAGE_TITLE), wiki); AllNodeNumber++; } @@ -214,17 +209,36 @@ return count; } - public void searchHasLinkOut(final Node node) { + public void printOutHasLink(final Node node, int depth) { int numberOfLinkPages = 0; - String output = node.getProperty(PAGE_TITLE) + " have link pages:\n"; + String output = node.getProperty(PAGE_TITLE) + " outHasLink pages:"; + System.out.println(output); Traverser hasLinkTraverser = getOutHasLinkTraverser(node); for (Path hasLinkPath : hasLinkTraverser) { - output += "At depth " + hasLinkPath.length() + " => " - + hasLinkPath.endNode().getProperty(PAGE_TITLE) + "\n"; + if (depth < hasLinkPath.length()) break; + String depthOutput = "At depth " + hasLinkPath.length() + " => " + + hasLinkPath.endNode().getProperty(PAGE_TITLE); + System.out.println(depthOutput); numberOfLinkPages++; } - output += "Number of link pages: " + numberOfLinkPages + "\n"; + String numOutput = "Number of link pages: " + numberOfLinkPages; + System.out.println(numOutput); + } + + public void printInHasLink(final Node node, int depth) { + int numberOfLinkPages = 0; + String output = node.getProperty(PAGE_TITLE) + " inHasLink pages:"; System.out.println(output); + Traverser hasLinkTraverser = getInHasLinkTraverser(node); + for (Path hasLinkPath : hasLinkTraverser) { + if (depth < hasLinkPath.length()) break; + String depthOutput = "At depth " + hasLinkPath.length() + " => " + + hasLinkPath.endNode().getProperty(PAGE_TITLE); + System.out.println(depthOutput); + numberOfLinkPages++; + } + String numOutput = "Number of link pages: " + numberOfLinkPages + "\n"; + System.out.println(numOutput); } public double computePageRank(Node node) { @@ -240,10 +254,10 @@ Node n = hasLinkPath.endNode(); sum += (Double) n.getProperty(PAGE_RANK); } - if (wiki.getOutLink() == 0) { + if (wiki.getOutHasLink() == 0) { pageRank = (double) ((double) 1 / AllNodeNumber * weight2); } else { - pageRank = (double) ((double)sum / wiki.getOutLink() * weight1) + pageRank = (double) ((double)sum / wiki.getOutHasLink() * weight1) + (double) ((double) 1 / AllNodeNumber * weight2); } @@ -251,5 +265,20 @@ node.setProperty(PAGE_RANK, pageRank); return pageRank; } + + public void printNodeInfo(int nodeId) { + Node node = graphDb.getNodeById(nodeId); + String title = getPageTitle(node); + double rank = getPageRank(node); + long inHasLink = computeInHasLink(node); + long outHasLink = computeOutHasLink(node); + + System.out.println("id:"+nodeId+" title:"+title+" rank:"+rank); + System.out.println("inHasLink:"+inHasLink+" outHasLink:"+outHasLink); + + printInHasLink(node, 1); + printOutHasLink(node, 1); + + } }