瀏覽代碼

术语检索

zhaops 4 年之前
父節點
當前提交
6fde312f50

+ 8 - 6
src/main/java/com/diagbot/repository/DeptRepository.java

@@ -20,16 +20,18 @@ public interface DeptRepository extends Neo4jRepository<Dept, Long> {
 
     Page<Dept> findByNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(String name, String pycode, Pageable pageable);
 
-    @Query("MATCH (n:`科室`)-[r]-(m) WHERE toLower(n.`name`) = toLower($name) \n" +
+    @Query("MATCH (n:`科室`) WHERE toLower(n.`name`) = toLower($name) \n" +
             "OR toLower(n.`拼音编码`) = toLower($pycode)  \n" +
-            "RETURN n, collect(r), collect(m)\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n" +
             "union\n" +
-            "MATCH (n:`科室`)-[r]-(m) WHERE toLower(n.`name`) starts with toLower($name) \n" +
+            "MATCH (n:`科室`) WHERE toLower(n.`name`) starts with toLower($name) \n" +
             "OR toLower(n.`拼音编码`) starts with toLower($pycode)  \n" +
-            "RETURN n, collect(r), collect(m) limit 100\n" +
+            "WITH n SKIP 0 LIMIT $size\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n" +
             "union\n" +
-            "MATCH (n:`科室`)-[r]-(m) WHERE toLower(n.`name`) CONTAINS toLower($name) \n" +
+            "MATCH (n:`科室`) WHERE toLower(n.`name`) CONTAINS toLower($name) \n" +
             "OR toLower(n.`拼音编码`) CONTAINS toLower($pycode)  \n" +
-            "RETURN n, collect(r), collect(m) limit $size")
+            "WITH n SKIP 0 LIMIT $size\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n")
     List<Dept> index(@Param("name") String name, @Param("pycode") String pycode, @Param("size") Integer size);
 }

+ 17 - 13
src/main/java/com/diagbot/repository/LisNameRepository.java

@@ -20,29 +20,33 @@ public interface LisNameRepository extends Neo4jRepository<LisName, Long> {
 
     Page<LisName> findByNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(String name, String pycode, Pageable pageable);
 
-    @Query("MATCH (n:`实验室检查名称`)-[r]-(m) WHERE n.`静态知识标识` = $isKL \n" +
+    @Query("MATCH (n:`实验室检查名称`) WHERE n.`静态知识标识` = $isKL \n" +
             "AND (toLower(n.`name`) = toLower($name)  OR  toLower(n.`拼音编码`) = toLower($pycode))\n" +
-            "RETURN n, collect(r), collect(m)\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n" +
             "UNION\n" +
-            "MATCH (n:`实验室检查名称`)-[r]-(m) WHERE n.`静态知识标识` = $isKL \n" +
+            "MATCH (n:`实验室检查名称`) WHERE n.`静态知识标识` = $isKL \n" +
             "AND (toLower(n.`name`) STARTS WITH toLower($name) OR toLower(n.`拼音编码`) STARTS WITH toLower($pycode))\n" +
-            "RETURN n, collect(r), collect(m) limit $size\n" +
+            "WITH n SKIP 0 LIMIT $size\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n" +
             "UNION \n" +
-            "MATCH (n:`实验室检查名称`)-[r]-(m) WHERE n.`静态知识标识` = $isKL  \n" +
+            "MATCH (n:`实验室检查名称`) WHERE n.`静态知识标识` = $isKL  \n" +
             "AND (toLower(n.`name`) CONTAINS toLower($name) OR toLower(n.`拼音编码`) CONTAINS toLower($pycode))  \n" +
-            "RETURN n, collect(r), collect(m) limit $size")
+            "WITH n SKIP 0 LIMIT $size\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n")
     List<LisName> staticKnowledgeIndex(@Param("isKL") Integer isKL, @Param("name") String name, @Param("pycode") String pycode, @Param("size") Integer size);
 
-    @Query("MATCH (n:`实验室检查名称`)-[r]-(m) WHERE toLower(n.`name`) = toLower($name) \n" +
+    @Query("MATCH (n:`实验室检查名称`) WHERE toLower(n.`name`) = toLower($name) \n" +
             "OR toLower(n.`拼音编码`) = toLower($pycode)  \n" +
-            "RETURN n, collect(r), collect(m)\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n" +
             "union\n" +
-            "MATCH (n:`实验室检查名称`)-[r]-(m) WHERE toLower(n.`name`) starts with toLower($name) \n" +
+            "MATCH (n:`实验室检查名称`) WHERE toLower(n.`name`) starts with toLower($name) \n" +
             "OR toLower(n.`拼音编码`) starts with toLower($pycode)  \n" +
-            "RETURN n, collect(r), collect(m) limit 100\n" +
+            "WITH n SKIP 0 LIMIT $size\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n" +
             "union\n" +
-            "MATCH (n:`实验室检查名称`)-[r]-(m) WHERE toLower(n.`name`) CONTAINS toLower($name) \n" +
+            "MATCH (n:`实验室检查名称`) WHERE toLower(n.`name`) CONTAINS toLower($name) \n" +
             "OR toLower(n.`拼音编码`) CONTAINS toLower($pycode)  \n" +
-            "RETURN n, collect(r), collect(m) limit $size")
+            "WITH n SKIP 0 LIMIT $size\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n")
     List<LisName> index(@Param("name") String name, @Param("pycode") String pycode, @Param("size") Integer size);
-}
+}

+ 16 - 12
src/main/java/com/diagbot/repository/LisSetRepository.java

@@ -20,30 +20,34 @@ public interface LisSetRepository extends Neo4jRepository<LisSet, Long> {
 
     Page<LisSet> findByNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(String name, String pycode, Pageable pageable);
 
-    @Query("MATCH (n:`实验室检查套餐名`)-[r]-(m) WHERE n.`静态知识标识` = $isKL \n" +
+    @Query("MATCH (n:`实验室检查套餐名`) WHERE n.`静态知识标识` = $isKL \n" +
             "AND (toLower(n.`name`) = toLower($name)  OR  toLower(n.`拼音编码`) = toLower($pycode))\n" +
-            "RETURN n, collect(r), collect(m)\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n" +
             "UNION\n" +
-            "MATCH (n:`实验室检查套餐名`)-[r]-(m) WHERE n.`静态知识标识` = $isKL \n" +
+            "MATCH (n:`实验室检查套餐名`) WHERE n.`静态知识标识` = $isKL \n" +
             "AND (toLower(n.`name`) STARTS WITH toLower($name) OR toLower(n.`拼音编码`) STARTS WITH toLower($pycode))\n" +
-            "RETURN n, collect(r), collect(m) limit $size\n" +
+            "WITH n SKIP 0 LIMIT $size\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n" +
             "UNION \n" +
-            "MATCH (n:`实验室检查套餐名`)-[r]-(m) WHERE n.`静态知识标识` = $isKL  \n" +
+            "MATCH (n:`实验室检查套餐名`) WHERE n.`静态知识标识` = $isKL  \n" +
             "AND (toLower(n.`name`) CONTAINS toLower($name) OR toLower(n.`拼音编码`) CONTAINS toLower($pycode))  \n" +
-            "RETURN n, collect(r), collect(m) limit $size")
+            "WITH n SKIP 0 LIMIT $size\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n")
     List<LisSet> staticKnowledgeIndex(@Param("isKL") Integer isKL, @Param("name") String name, @Param("pycode") String pycode, @Param("size") Integer size);
 
-    @Query("MATCH (n:`实验室检查套餐名`)-[r]-(m) WHERE toLower(n.`name`) = toLower($name) \n" +
+    @Query("MATCH (n:`实验室检查套餐名`) WHERE toLower(n.`name`) = toLower($name) \n" +
             "OR toLower(n.`拼音编码`) = toLower($pycode)  \n" +
-            "RETURN n, collect(r), collect(m)\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n" +
             "union\n" +
-            "MATCH (n:`实验室检查套餐名`)-[r]-(m) WHERE toLower(n.`name`) starts with toLower($name) \n" +
+            "MATCH (n:`实验室检查套餐名`) WHERE toLower(n.`name`) starts with toLower($name) \n" +
             "OR toLower(n.`拼音编码`) starts with toLower($pycode)  \n" +
-            "RETURN n, collect(r), collect(m) limit 100\n" +
+            "WITH n SKIP 0 LIMIT $size\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n" +
             "union\n" +
-            "MATCH (n:`实验室检查套餐名`)-[r]-(m) WHERE toLower(n.`name`) CONTAINS toLower($name) \n" +
+            "MATCH (n:`实验室检查套餐名`) WHERE toLower(n.`name`) CONTAINS toLower($name) \n" +
             "OR toLower(n.`拼音编码`) CONTAINS toLower($pycode)  \n" +
-            "RETURN n, collect(r), collect(m) limit $size")
+            "WITH n SKIP 0 LIMIT $size\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n")
     List<LisSet> index(@Param("name") String name, @Param("pycode") String pycode, @Param("size") Integer size);
 }
 

+ 17 - 13
src/main/java/com/diagbot/repository/MedicineRepository.java

@@ -22,32 +22,36 @@ public interface MedicineRepository extends Neo4jRepository<Medicine, Long> {
 
     @Query("match (n:药品通用名称)<-[r1:药品相关药品通用名称]-(m:药品代码通用名)-[r2:药品相关药品注册名称]->(o:药品注册名称) where n.name={name} return distinct o.name")
     List<String> findMedRegNamebyMedicine(@Param("name") String name);
+
     Page<Medicine> findByNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(String name, String pycode, Pageable pageable);
 
-    @Query("MATCH (n:`药品通用名称`)-[r]-(m) WHERE n.`静态知识标识` = $isKL \n" +
+    @Query("MATCH (n:`药品通用名称`) WHERE n.`静态知识标识` = $isKL \n" +
             "AND (toLower(n.`name`) = toLower($name)  OR  toLower(n.`拼音编码`) = toLower($pycode))\n" +
-            "RETURN n, collect(r), collect(m)\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n" +
             "UNION\n" +
-            "MATCH (n:`药品通用名称`)-[r]-(m) WHERE n.`静态知识标识` = $isKL \n" +
+            "MATCH (n:`药品通用名称`) WHERE n.`静态知识标识` = $isKL \n" +
             "AND (toLower(n.`name`) STARTS WITH toLower($name) OR toLower(n.`拼音编码`) STARTS WITH toLower($pycode))\n" +
-            "RETURN n, collect(r), collect(m) limit $size\n" +
+            "WITH n SKIP 0 LIMIT $size\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n" +
             "UNION \n" +
-            "MATCH (n:`药品通用名称`)-[r]-(m) WHERE n.`静态知识标识` = $isKL  \n" +
+            "MATCH (n:`药品通用名称`) WHERE n.`静态知识标识` = $isKL  \n" +
             "AND (toLower(n.`name`) CONTAINS toLower($name) OR toLower(n.`拼音编码`) CONTAINS toLower($pycode))  \n" +
-            "RETURN n, collect(r), collect(m) limit $size")
+            "WITH n SKIP 0 LIMIT $size\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n")
     List<Medicine> staticKnowledgeIndex(@Param("isKL") Integer isKL, @Param("name") String name, @Param("pycode") String pycode, @Param("size") Integer size);
 
-    @Query("MATCH (n:`药品通用名称`)-[r]-(m) WHERE toLower(n.`name`) = toLower($name) \n" +
+    @Query("MATCH (n:`药品通用名称`) WHERE toLower(n.`name`) = toLower($name) \n" +
             "OR toLower(n.`拼音编码`) = toLower($pycode)  \n" +
-            "RETURN n, collect(r), collect(m)\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n" +
             "union\n" +
-            "MATCH (n:`药品通用名称`)-[r]-(m) WHERE toLower(n.`name`) starts with toLower($name) \n" +
+            "MATCH (n:`药品通用名称`) WHERE toLower(n.`name`) starts with toLower($name) \n" +
             "OR toLower(n.`拼音编码`) starts with toLower($pycode)  \n" +
-            "RETURN n, collect(r), collect(m) limit 100\n" +
+            "WITH n SKIP 0 LIMIT $size\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n" +
             "union\n" +
-            "MATCH (n:`药品通用名称`)-[r]-(m) WHERE toLower(n.`name`) CONTAINS toLower($name) \n" +
+            "MATCH (n:`药品通用名称`) WHERE toLower(n.`name`) CONTAINS toLower($name) \n" +
             "OR toLower(n.`拼音编码`) CONTAINS toLower($pycode)  \n" +
-            "RETURN n, collect(r), collect(m) limit $size")
+            "WITH n SKIP 0 LIMIT $size\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n")
     List<Medicine> index(@Param("name") String name, @Param("pycode") String pycode, @Param("size") Integer size);
 }
-

+ 17 - 13
src/main/java/com/diagbot/repository/PacsNameRepository.java

@@ -20,29 +20,33 @@ public interface PacsNameRepository extends Neo4jRepository<PacsName, Long> {
 
     Page<PacsName> findByNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(String name, String pycode, Pageable pageable);
 
-    @Query("MATCH (n:`辅助检查名称`)-[r]-(m) WHERE n.`静态知识标识` = $isKL \n" +
+    @Query("MATCH (n:`辅助检查名称`) WHERE n.`静态知识标识` = $isKL \n" +
             "AND (toLower(n.`name`) = toLower($name)  OR  toLower(n.`拼音编码`) = toLower($pycode))\n" +
-            "RETURN n, collect(r), collect(m)\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n" +
             "UNION\n" +
-            "MATCH (n:`辅助检查名称`)-[r]-(m) WHERE n.`静态知识标识` = $isKL \n" +
+            "MATCH (n:`辅助检查名称`) WHERE n.`静态知识标识` = $isKL \n" +
             "AND (toLower(n.`name`) STARTS WITH toLower($name) OR toLower(n.`拼音编码`) STARTS WITH toLower($pycode))\n" +
-            "RETURN n, collect(r), collect(m) limit $size\n" +
+            "WITH n SKIP 0 LIMIT $size\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n" +
             "UNION \n" +
-            "MATCH (n:`辅助检查名称`)-[r]-(m) WHERE n.`静态知识标识` = $isKL  \n" +
+            "MATCH (n:`辅助检查名称`) WHERE n.`静态知识标识` = $isKL  \n" +
             "AND (toLower(n.`name`) CONTAINS toLower($name) OR toLower(n.`拼音编码`) CONTAINS toLower($pycode))  \n" +
-            "RETURN n, collect(r), collect(m) limit $size")
+            "WITH n SKIP 0 LIMIT $size\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n")
     List<PacsName> staticKnowledgeIndex(@Param("isKL") Integer isKL, @Param("name") String name, @Param("pycode") String pycode, @Param("size") Integer size);
 
-    @Query("MATCH (n:`辅助检查名称`)-[r]-(m) WHERE toLower(n.`name`) = toLower($name) \n" +
+    @Query("MATCH (n:`辅助检查名称`) WHERE toLower(n.`name`) = toLower($name) \n" +
             "OR toLower(n.`拼音编码`) = toLower($pycode)  \n" +
-            "RETURN n, collect(r), collect(m)\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n" +
             "union\n" +
-            "MATCH (n:`辅助检查名称`)-[r]-(m) WHERE toLower(n.`name`) starts with toLower($name) \n" +
+            "MATCH (n:`辅助检查名称`) WHERE toLower(n.`name`) starts with toLower($name) \n" +
             "OR toLower(n.`拼音编码`) starts with toLower($pycode)  \n" +
-            "RETURN n, collect(r), collect(m) limit 100\n" +
+            "WITH n SKIP 0 LIMIT $size\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n" +
             "union\n" +
-            "MATCH (n:`辅助检查名称`)-[r]-(m) WHERE toLower(n.`name`) CONTAINS toLower($name) \n" +
+            "MATCH (n:`辅助检查名称`) WHERE toLower(n.`name`) CONTAINS toLower($name) \n" +
             "OR toLower(n.`拼音编码`) CONTAINS toLower($pycode)  \n" +
-            "RETURN n, collect(r), collect(m) limit $size")
+            "WITH n SKIP 0 LIMIT $size\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n")
     List<PacsName> index(@Param("name") String name, @Param("pycode") String pycode, @Param("size") Integer size);
-}
+}

+ 16 - 12
src/main/java/com/diagbot/repository/YiBaoDiseaseRepository.java

@@ -20,30 +20,34 @@ public interface YiBaoDiseaseRepository extends Neo4jRepository<YiBaoDiseaseName
 
     Page<YiBaoDiseaseName> findByNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(String name, String pycode, Pageable pageable);
 
-    @Query("MATCH (n:`医保疾病名称`)-[r]-(m) WHERE n.`静态知识标识` = $isKL \n" +
+    @Query("MATCH (n:`医保疾病名称`) WHERE n.`静态知识标识` = $isKL \n" +
             "AND (toLower(n.`name`) = toLower($name)  OR  toLower(n.`拼音编码`) = toLower($pycode))\n" +
-            "RETURN n, collect(r), collect(m)\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n" +
             "UNION\n" +
-            "MATCH (n:`医保疾病名称`)-[r]-(m) WHERE n.`静态知识标识` = $isKL \n" +
+            "MATCH (n:`医保疾病名称`) WHERE n.`静态知识标识` = $isKL \n" +
             "AND (toLower(n.`name`) STARTS WITH toLower($name) OR toLower(n.`拼音编码`) STARTS WITH toLower($pycode))\n" +
-            "RETURN n, collect(r), collect(m) limit $size\n" +
+            "WITH n SKIP 0 LIMIT $size\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n" +
             "UNION \n" +
-            "MATCH (n:`医保疾病名称`)-[r]-(m) WHERE n.`静态知识标识` = $isKL  \n" +
+            "MATCH (n:`医保疾病名称`) WHERE n.`静态知识标识` = $isKL  \n" +
             "AND (toLower(n.`name`) CONTAINS toLower($name) OR toLower(n.`拼音编码`) CONTAINS toLower($pycode))  \n" +
-            "RETURN n, collect(r), collect(m) limit $size")
+            "WITH n SKIP 0 LIMIT $size\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n")
     List<YiBaoDiseaseName> staticKnowledgeIndex(@Param("isKL") Integer isKL, @Param("name") String name, @Param("pycode") String pycode, @Param("size") Integer size);
 
-    @Query("MATCH (n:`医保疾病名称`)-[r]-(m) WHERE toLower(n.`name`) = toLower($name) \n" +
+    @Query("MATCH (n:`医保疾病名称`) WHERE toLower(n.`name`) = toLower($name) \n" +
             "OR toLower(n.`拼音编码`) = toLower($pycode)  \n" +
-            "RETURN n, collect(r), collect(m)\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n" +
             "union\n" +
-            "MATCH (n:`医保疾病名称`)-[r]-(m) WHERE toLower(n.`name`) starts with toLower($name) \n" +
+            "MATCH (n:`医保疾病名称`) WHERE toLower(n.`name`) starts with toLower($name) \n" +
             "OR toLower(n.`拼音编码`) starts with toLower($pycode)  \n" +
-            "RETURN n, collect(r), collect(m) limit 100\n" +
+            "WITH n SKIP 0 LIMIT $size\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n" +
             "union\n" +
-            "MATCH (n:`医保疾病名称`)-[r]-(m) WHERE toLower(n.`name`) CONTAINS toLower($name) \n" +
+            "MATCH (n:`医保疾病名称`) WHERE toLower(n.`name`) CONTAINS toLower($name) \n" +
             "OR toLower(n.`拼音编码`) CONTAINS toLower($pycode)  \n" +
-            "RETURN n, collect(r), collect(m) limit $size")
+            "WITH n SKIP 0 LIMIT $size\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n")
     List<YiBaoDiseaseName> index(@Param("name") String name, @Param("pycode") String pycode, @Param("size") Integer size);
 }
 

+ 16 - 12
src/main/java/com/diagbot/repository/YiBaoOperationNameRepository.java

@@ -20,29 +20,33 @@ public interface YiBaoOperationNameRepository extends Neo4jRepository<YiBaoOpera
 
     Page<YiBaoOperationName> findByNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(String name, String pycode, Pageable pageable);
 
-    @Query("MATCH (n:`医保手术和操作名称`)-[r]-(m) WHERE n.`静态知识标识` = $isKL \n" +
+    @Query("MATCH (n:`医保手术和操作名称`) WHERE n.`静态知识标识` = $isKL \n" +
             "AND (toLower(n.`name`) = toLower($name)  OR  toLower(n.`拼音编码`) = toLower($pycode))\n" +
-            "RETURN n, collect(r), collect(m)\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n" +
             "UNION\n" +
-            "MATCH (n:`医保手术和操作名称`)-[r]-(m) WHERE n.`静态知识标识` = $isKL \n" +
+            "MATCH (n:`医保手术和操作名称`) WHERE n.`静态知识标识` = $isKL \n" +
             "AND (toLower(n.`name`) STARTS WITH toLower($name) OR toLower(n.`拼音编码`) STARTS WITH toLower($pycode))\n" +
-            "RETURN n, collect(r), collect(m) limit $size\n" +
+            "WITH n SKIP 0 LIMIT $size\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n" +
             "UNION \n" +
-            "MATCH (n:`医保手术和操作名称`)-[r]-(m) WHERE n.`静态知识标识` = $isKL  \n" +
+            "MATCH (n:`医保手术和操作名称`) WHERE n.`静态知识标识` = $isKL  \n" +
             "AND (toLower(n.`name`) CONTAINS toLower($name) OR toLower(n.`拼音编码`) CONTAINS toLower($pycode))  \n" +
-            "RETURN n, collect(r), collect(m) limit $size")
+            "WITH n SKIP 0 LIMIT $size\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n")
     List<YiBaoOperationName> staticKnowledgeIndex(@Param("isKL") Integer isKL, @Param("name") String name, @Param("pycode") String pycode, @Param("size") Integer size);
 
-    @Query("MATCH (n:`医保手术和操作名称`)-[r]-(m) WHERE toLower(n.`name`) = toLower($name) \n" +
+    @Query("MATCH (n:`医保手术和操作名称`) WHERE toLower(n.`name`) = toLower($name) \n" +
             "OR toLower(n.`拼音编码`) = toLower($pycode)  \n" +
-            "RETURN n, collect(r), collect(m)\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n" +
             "union\n" +
-            "MATCH (n:`医保手术和操作名称`)-[r]-(m) WHERE toLower(n.`name`) starts with toLower($name) \n" +
+            "MATCH (n:`医保手术和操作名称`) WHERE toLower(n.`name`) starts with toLower($name) \n" +
             "OR toLower(n.`拼音编码`) starts with toLower($pycode)  \n" +
-            "RETURN n, collect(r), collect(m) limit 100\n" +
+            "WITH n SKIP 0 LIMIT $size\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n" +
             "union\n" +
-            "MATCH (n:`医保手术和操作名称`)-[r]-(m) WHERE toLower(n.`name`) CONTAINS toLower($name) \n" +
+            "MATCH (n:`医保手术和操作名称`) WHERE toLower(n.`name`) CONTAINS toLower($name) \n" +
             "OR toLower(n.`拼音编码`) CONTAINS toLower($pycode)  \n" +
-            "RETURN n, collect(r), collect(m) limit $size")
+            "WITH n SKIP 0 LIMIT $size\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n")
     List<YiBaoOperationName> index(@Param("name") String name, @Param("pycode") String pycode, @Param("size") Integer size);
 }