Browse Source

诊断推理修改:
一个词的上一层级如果只是近义词的话,就替换掉他的近义词
然后进行以下的推理

kongwz 6 years ago
parent
commit
4f78242dfe
1 changed files with 21 additions and 8 deletions
  1. 21 8
      graph/src/main/java/org/diagbot/graph/jdbc/Neo4jAPI.java

+ 21 - 8
graph/src/main/java/org/diagbot/graph/jdbc/Neo4jAPI.java

@@ -653,13 +653,29 @@ public class Neo4jAPI {
         String query = "";
         String query = "";
         try {
         try {
             session = driver.session(AccessMode.WRITE);
             session = driver.session(AccessMode.WRITE);
-//            query = propertiesUtil.getProperty("serchCollect").replace("fildList",fildList);
-            //判断是否有近义词
+            query = propertiesUtil.getProperty("serchCollect").replace("fildList",fildList.toString());
+            result = session.run(query);
+            while (result.hasNext()){
+                Record record = result.next();
+                String fild = record.get("fild").toString();
+                List<Object> typeCollect = record.get("typeCollect").asList();
+                //如果不包含诊断依据就找它的同义词,否则就要这个词
+                if("近义词".equals(typeCollect.get(0)) && typeCollect.size() ==1){
+                    query = "match(l)-[r:近义词]->(h) where l.name="+fild+" return h.name as js";
+                    StatementResult jinyiResult = session.run(query);
+                    while (jinyiResult.hasNext()){
+                        Record next = jinyiResult.next();
+                        String js = next.get("js").toString();
+                        fildList.remove(fild);
+                        fildList.add(js);
+                    }
+
+                }
+            }
+/*            //判断是否有近义词
             query = "match (l)-[r:近义词]->(m)\n" +
             query = "match (l)-[r:近义词]->(m)\n" +
                     "where l.name in  " + fildList + "\n" +
                     "where l.name in  " + fildList + "\n" +
                     "return l.name as zi,type(r),m.name as fu";
                     "return l.name as zi,type(r),m.name as fu";
-//            System.out.println("近义词语句:");
-//            System.out.println(query);
             result = session.run(query);
             result = session.run(query);
             while (result.hasNext()) {
             while (result.hasNext()) {
                 Record record = result.next();
                 Record record = result.next();
@@ -667,7 +683,7 @@ public class Neo4jAPI {
                 String d = record.get("fu").toString();
                 String d = record.get("fu").toString();
                 fildList.remove(c);
                 fildList.remove(c);
                 fildList.add(d);
                 fildList.add(d);
-            }
+            }*/
 //            System.out.println("参与计算的词:"+fildList);
 //            System.out.println("参与计算的词:"+fildList);
             newList.addAll(fildList);
             newList.addAll(fildList);
             int i = 0;
             int i = 0;
@@ -701,9 +717,6 @@ public class Neo4jAPI {
                     "where n.name=row\n" +
                     "where n.name=row\n" +
                     "with distinct m,r\n" +
                     "with distinct m,r\n" +
                     "return m.name as name, labels(m)[0] as label,type(r) as relationType";
                     "return m.name as name, labels(m)[0] as label,type(r) as relationType";
-//            System.out.println("查询确诊和拟诊:");
-//            System.out.println(query);
-
             result = session.run(query);
             result = session.run(query);
             while (result.hasNext()) {
             while (result.hasNext()) {
                 Record record = result.next();
                 Record record = result.next();