Пример #1
0
 /**
  * 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;
 }