Browse Source

es根据设备名称查询设备,分词策略修改为keyword,查询采用通配符模糊查询

lixing 3 years ago
parent
commit
fdbe943585

+ 13 - 14
src/main/java/com/persagy/apm/alarmservice/group/management/service/impl/GroupManagementServiceImpl.java

@@ -4,11 +4,11 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.google.common.collect.Lists;
-import com.persagy.apm.alarmservice.group.management.model.equip.vo.EquipItem;
 import com.persagy.apm.alarmservice.group.management.model.equip.dto.QueryEquipDTO;
+import com.persagy.apm.alarmservice.group.management.model.equip.vo.EquipItem;
 import com.persagy.apm.alarmservice.group.management.model.group.ConvertGroupTool;
-import com.persagy.apm.alarmservice.group.management.model.group.vo.GroupInfoVO;
 import com.persagy.apm.alarmservice.group.management.model.group.vo.EquipGroupInfoVO;
+import com.persagy.apm.alarmservice.group.management.model.group.vo.GroupInfoVO;
 import com.persagy.apm.alarmservice.group.management.model.group.vo.GroupTreeVO;
 import com.persagy.apm.alarmservice.group.management.service.GroupManagementService;
 import com.persagy.apm.common.context.poems.PoemsContext;
@@ -46,13 +46,13 @@ import java.nio.charset.StandardCharsets;
 import java.util.*;
 import java.util.stream.Collectors;
 
-import static cn.hutool.core.util.StrUtil.*;
 import static com.persagy.apm.alarmservice.common.constants.ElasticStrConstant.INDEX_NAME;
 import static org.apache.commons.lang3.math.NumberUtils.INTEGER_ONE;
 import static org.apache.commons.lang3.math.NumberUtils.INTEGER_ZERO;
 
 /**
  * 分组管理service
+ *
  * @author 易涛
  * @version 1.0
  * @date 2021/9/8 14:18
@@ -82,8 +82,7 @@ public class GroupManagementServiceImpl implements GroupManagementService {
         }
         //模糊查询使用
         if (StringUtils.isNotEmpty(managementDTO.getLocalName())) {
-            queryBuilder.must(QueryBuilders.matchQuery("local_name", managementDTO.getLocalName())
-                    .analyzer("keyword"));
+            queryBuilder.must(QueryBuilders.wildcardQuery("local_name", "*" + managementDTO.getLocalName() + "*"));
         }
         queryBuilder.must(QueryBuilders.termQuery("valid", INTEGER_ONE));
         SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
@@ -91,7 +90,6 @@ public class GroupManagementServiceImpl implements GroupManagementService {
         sourceBuilder.from((Math.max(managementDTO.getPage(), INTEGER_ONE) - INTEGER_ONE)
                 * managementDTO.getSize());
         sourceBuilder.size(managementDTO.getSize());
-        sourceBuilder.sort("create_time", SortOrder.DESC);
         SearchRequest rq = new SearchRequest(INDEX_NAME);
         rq.source(sourceBuilder);
         try {
@@ -122,6 +120,7 @@ public class GroupManagementServiceImpl implements GroupManagementService {
 
     /**
      * 根据id查询设备-常用方法
+     *
      * @param id 设备id
      * @author 易涛
      * @date 2021/9/10 10:05
@@ -202,8 +201,8 @@ public class GroupManagementServiceImpl implements GroupManagementService {
     public List<EquipGroupInfoVO> equipGroupQuery(List<String> ids) {
         List<EquipGroupInfoVO> equipGroupInfoVOList = Lists.newArrayList();
         List<EquipItem> equipItemList = findEquipsByIds(ids);
-        for(EquipItem equipItem: equipItemList) {
-            if(StringUtils.isEmpty(equipItem.getInfos())){
+        for (EquipItem equipItem : equipItemList) {
+            if (StringUtils.isEmpty(equipItem.getInfos())) {
                 return equipGroupInfoVOList;
             }
             JSONObject jsonObject = JSONObject.parseObject(equipItem.getInfos());
@@ -219,10 +218,10 @@ public class GroupManagementServiceImpl implements GroupManagementService {
             EquipGroupInfoVO equipGroupInfoVO = new EquipGroupInfoVO();
             equipGroupInfoVO.setEquipId(equipItem.getId());
             equipGroupInfoVO.setClassCode(equipItem.getClassCode());
-            if(CollectionUtils.isEmpty(groupTreeVOList)){
+            if (CollectionUtils.isEmpty(groupTreeVOList)) {
                 return equipGroupInfoVOList;
             }
-            equipGroupInfoVOList.add(cascadeSearchGroupInfo(groupTreeVOList,equipGroupInfoVO,equipFuncMap));
+            equipGroupInfoVOList.add(cascadeSearchGroupInfo(groupTreeVOList, equipGroupInfoVO, equipFuncMap));
         }
         return equipGroupInfoVOList;
     }
@@ -256,9 +255,9 @@ public class GroupManagementServiceImpl implements GroupManagementService {
      * 递归查询设备的分组信息
      * 遍历分组树,如果设备的信息点中包含分组的分组条件,同时设备的设备类编码与分组设备类编码匹配时,代表设备属于这个分组
      *
-     * @param groupTreeVOList 分组树节点列表
+     * @param groupTreeVOList  分组树节点列表
      * @param equipGroupInfoVO 设备和所在分组信息(初始化时包含设备id和设备类编码)
-     * @param equipFuncMap "设备信息点:信息点取值" -> "设备信息点:信息点取值",
+     * @param equipFuncMap     "设备信息点:信息点取值" -> "设备信息点:信息点取值",
      * @return 设备和所在分组信息(补充完成分组信息)
      * @author 易涛
      * @date 2021/9/10 11:24
@@ -297,7 +296,7 @@ public class GroupManagementServiceImpl implements GroupManagementService {
      */
     public static List<GroupTreeVO> getGroupTree() {
         InputStream inputStream = GroupManagementServiceImpl.class.getClassLoader()
-                .getResourceAsStream( "json" + File.separator + "GroupTree.json");
+                .getResourceAsStream("json" + File.separator + "GroupTree.json");
         if (inputStream == null) {
             return null;
         }
@@ -387,7 +386,7 @@ public class GroupManagementServiceImpl implements GroupManagementService {
      * 递归查询分组树的叶子节点
      *
      * @param groupTree 分组树节点列表
-     * @param result 保存叶子节点的结果集
+     * @param result    保存叶子节点的结果集
      * @author lixing
      * @version V1.0 2021/9/19 1:37 下午
      */