فهرست منبع

20241127 语义检索

lrj 10 ماه پیش
والد
کامیت
9f46140e54

+ 8 - 0
src/main/java/cn/cslg/pas/service/business/CompareLiteratureService.java

@@ -272,6 +272,14 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
                                     || literatureNo.equals(item.getPublicNo()) ||
                                     literatureNo.equals(item.getGrantNo())).findFirst().orElse(null);
                     if (patent != null) {
+                        String authorName = "";
+                        if(patent.getRightHolder()!=null&&patent.getRightHolder().size()>0){
+                            authorName=patent.getRightHolder().get(0).getName();
+                        }
+                        else if(patent.getApplicant()!=null&&patent.getApplicant().size()>0){
+                            authorName=patent.getApplicant().get(0).getName();
+                        }
+                        compareLiteratureVO.setAuthorName(authorName);
                         compareLiteratureVO.setName(patent.getTitle().get(0).getTextContent());
                         compareLiteratureVO.setAppNo(patent.getAppNo());
                         compareLiteratureVO.setAppDate(patent.getAppDate());

+ 10 - 2
src/main/java/cn/cslg/pas/service/business/es/EsPatentService.java

@@ -762,14 +762,22 @@ public class EsPatentService {
             }
         }
         String condition = esService.appendIdsCondition(searchCondition, taskId, productFrom, projectId, productId);
+
+        Query q =null;
+        if(condition==null||condition.trim().equals("")){
+            q =QueryBuilders.exists(i->i.field("patent_no"));
+        }
+        else {
         //1. 解析检索条件
         treeNode tree = expressManager.getInstance().Parse(condition, false);
         //3. 从es中检索数据
-        Query q = formatQueryService.EsQueryToQuery((operateNode) tree, "patent", projectId);
+        q = formatQueryService.EsQueryToQuery((operateNode) tree, "patent", projectId);
+        }
+        Query finalQ=q;
         Query reQuery = null;
         if (patentNos != null && patentNos.size() > 0) {
             List<Query> notInQuery = this.getNoNotInQuery(patentNos);
-            reQuery = QueryBuilders.bool(i -> i.must(q).mustNot(notInQuery));
+            reQuery = QueryBuilders.bool(i -> i.must(finalQ).mustNot(notInQuery));
         } else {
             reQuery = q;
         }

+ 1 - 1
src/main/java/cn/cslg/pas/service/business/es/EsPatentVectorService.java

@@ -93,7 +93,7 @@ public class EsPatentVectorService {
 
         long total = 21000l;
         long size = 50l;
-        long current = 249l;
+        long current = 0l;
 
         while (size * current < total) {
             current += 1;