/** * Get similar documents to the current document by matching the nodes * * @param doc target document * @param neo4jHandler neo4j handler * @param datasetHandler dataset handler * @return arraylist of matching document * @throws IOException * @throws ClassNotFoundException */ private ArrayList<Neo4jDocument> getSimilarDocuments( Neo4jDocument doc, Neo4jHandler neo4jHandler, DatasetLoader datasetHandler) throws IOException, ClassNotFoundException { ArrayList<Neo4jDocument> similarDocument = new ArrayList<Neo4jDocument>(); Hashtable<String, Neo4jDocument> similarDocumentHash = new Hashtable<String, Neo4jDocument>(); Neo4jDocument neo4jDocument = doc; ArrayList<Neo4jNode> nodes = neo4jDocument.getNodesList(); for (Iterator iterator = nodes.iterator(); iterator.hasNext(); ) { Neo4jNode neo4jNode = (Neo4jNode) iterator.next(); Hashtable<String, ArrayList<String>> documentTable = neo4jNode.getDocumentTable(); Enumeration e = documentTable.keys(); while (e.hasMoreElements()) { String simDocumentID = (String) e.nextElement(); if (!simDocumentID.equalsIgnoreCase(doc.getDocumentID()) && !similarDocumentHash.containsKey(simDocumentID)) { Document d = datasetHandler.getDocument(simDocumentID); Neo4jDocument nd = neo4jHandler.loadDocument(d); similarDocumentHash.put(simDocumentID, nd); similarDocument.add(nd); } // end if } // end looping for document at document table in the current node } // end looping for the node return similarDocument; }