Browse Source

大数据相似词检索

zhaops 5 years ago
parent
commit
2d6a0affcb

+ 5 - 1
config-server/src/main/resources/shared/knowledgeman-service-dev.yml

@@ -136,4 +136,8 @@ neo:
 
 ai:
   server:
-    address: http://192.168.2.234:5008
+    address: http://192.168.2.234:5008
+
+nlp:
+  server:
+    address: http://192.168.2.234:5002

+ 5 - 1
config-server/src/main/resources/shared/knowledgeman-service-local.yml

@@ -136,4 +136,8 @@ neo:
 
 ai:
   server:
-    address: http://192.168.2.234:5008
+    address: http://192.168.2.234:5008
+
+nlp:
+  server:
+    address: http://192.168.2.234:5002

+ 5 - 1
config-server/src/main/resources/shared/knowledgeman-service-pro.yml

@@ -136,4 +136,8 @@ neo:
 
 ai:
   server:
-    address: http://192.168.2.234:5008
+    address: http://192.168.2.234:5008
+
+nlp:
+  server:
+    address: http://192.168.2.234:5002

+ 5 - 1
config-server/src/main/resources/shared/knowledgeman-service-test.yml

@@ -136,4 +136,8 @@ neo:
 
 ai:
   server:
-    address: http://192.168.2.241:5008
+    address: http://192.168.2.241:5008
+
+nlp:
+  server:
+    address: http://192.168.2.234:5002

+ 19 - 0
knowledgeman-service/src/main/java/com/diagbot/client/NLPServiceClient.java

@@ -0,0 +1,19 @@
+package com.diagbot.client;
+
+import com.diagbot.client.hystrix.NLPServiceHystrix;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/10/28 15:01
+ */
+@FeignClient(name = "NLP", url = "${nlp.server.address}", fallback = NLPServiceHystrix.class)
+public interface NLPServiceClient {
+    @PostMapping(value = "/nlp-web/similar/getsimilar")
+    List<String> getSimilarList(@RequestBody String inputWord);
+}

+ 24 - 0
knowledgeman-service/src/main/java/com/diagbot/client/hystrix/NLPServiceHystrix.java

@@ -0,0 +1,24 @@
+package com.diagbot.client.hystrix;
+
+import com.diagbot.client.NLPServiceClient;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/10/28 15:02
+ */
+@Component
+@Slf4j
+public class NLPServiceHystrix implements NLPServiceClient {
+
+    @Override
+    public List<String> getSimilarList(@RequestBody String inputWord) {
+        log.error("【hystrix】调用{}异常", "getSimilarList");
+        return null;
+    }
+}

+ 1 - 0
knowledgeman-service/src/main/java/com/diagbot/config/ResourceServerConfigurer.java

@@ -43,6 +43,7 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/lisMapping/getUniqueNameWithList").permitAll()
                 .antMatchers("/conceptDetail/conceptDetailBI").permitAll()
                 .antMatchers("/concept/queryLibTypeCou").permitAll()
+                .antMatchers("/similar/getSimilarList").permitAll()
                 .antMatchers("/**").authenticated();
 //                .antMatchers("/**").permitAll();
     }

+ 1 - 0
knowledgeman-service/src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java

@@ -106,6 +106,7 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/lisMapping/getUniqueNameWithList", request)
                 || matchers("/conceptDetail/conceptDetailBI", request)
                 || matchers("/concept/queryLibTypeCou", request)
+                || matchers("/similar/getSimilarList", request)
                 || matchers("/", request)) {
             return true;
         }

+ 18 - 0
knowledgeman-service/src/main/java/com/diagbot/dto/SimilarLibraryDTO.java

@@ -0,0 +1,18 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/10/28 15:31
+ */
+@Getter
+@Setter
+public class SimilarLibraryDTO {
+    private Long conceptId;
+    private String name;
+    private Long typeId;
+    private Integer IsConcept;
+}

+ 42 - 0
knowledgeman-service/src/main/java/com/diagbot/facade/SimilarFacade.java

@@ -0,0 +1,42 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.client.NLPServiceClient;
+import com.diagbot.dto.SimilarLibraryDTO;
+import com.diagbot.entity.LibraryInfo;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.ListUtil;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/10/28 15:10
+ */
+@Component
+public class SimilarFacade {
+    @Autowired
+    NLPServiceClient nlpServiceClient;
+    @Autowired
+    LibraryInfoFacade libraryInfoFacade;
+
+    public List<SimilarLibraryDTO> getSimilarList(String inputWord) {
+        List<String> libraryNameList = nlpServiceClient.getSimilarList(inputWord);
+        List<SimilarLibraryDTO> libraryList = Lists.newLinkedList();
+        if (ListUtil.isNotEmpty(libraryNameList)) {
+            QueryWrapper<LibraryInfo> libraryInfoQueryWrapper = new QueryWrapper<>();
+            libraryInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .in("name", libraryNameList)
+                    .orderByDesc("is_concept")
+                    .orderByAsc("type_id");
+            List<LibraryInfo> libraryInfos = libraryInfoFacade.list(libraryInfoQueryWrapper);
+            libraryList = BeanUtil.listCopyTo(libraryInfos, SimilarLibraryDTO.class);
+        }
+        return libraryList;
+    }
+}

+ 35 - 0
knowledgeman-service/src/main/java/com/diagbot/web/SimilarController.java

@@ -0,0 +1,35 @@
+package com.diagbot.web;
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.SimilarLibraryDTO;
+import com.diagbot.facade.SimilarFacade;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/10/28 15:41
+ */
+@RestController
+@RequestMapping("/similar")
+@SuppressWarnings("unchecked")
+@Api(value = "相似词相关API", tags = { "知识库标准化-相似词相关API" })
+public class SimilarController {
+    @Autowired
+    SimilarFacade similarFacade;
+
+    @ApiOperation(value = "知识库标准化-相似词检索[by:zhaops]")
+    @PostMapping("/getSimilarList")
+    @SysLogger("getSimilarList")
+    public RespDTO<List<SimilarLibraryDTO>> getSimilarList(String inputWord) {
+        return RespDTO.onSuc(similarFacade.getSimilarList(inputWord));
+    }
+}