Просмотр исходного кода

索引实时更新增加对器件更新可能来自属性值变化的考虑

sunyj 9 лет назад
Родитель
Сommit
2ca5f49058

+ 1 - 1
search-console/src/main/java/com/uas/search/console/jms/AQListener.java

@@ -120,7 +120,7 @@ public class AQListener {
 		String message = "";
 		String message = "";
 		if (consumer == null) {
 		if (consumer == null) {
 			message = "实时更新索引服务未开启或已关闭";
 			message = "实时更新索引服务未开启或已关闭";
-			logger.info(message);
+			logger.warn(message);
 		} else {
 		} else {
 			try {
 			try {
 				consumer.close();
 				consumer.close();

+ 5 - 1
search-console/src/main/java/com/uas/search/console/jms/QueueMessageParser.java

@@ -187,7 +187,11 @@ public class QueueMessageParser {
 					component = new ComponentSimpleInfo();
 					component = new ComponentSimpleInfo();
 					component.setId(componentId);
 					component.setId(componentId);
 				}
 				}
-			} else {
+			}
+			// 器件较为特殊,insert和update需分开对待
+			// update来源还可能来自属性值的变化,而equals是不比较属性值的
+			// (如果比较的话,对于insert器件,即使是同一个,属性值在之后变化了的话,也会视为两个器件,会添加重复的器件索引)
+			else if (jsonObject.getString("method").equals("insert")) {
 				if (localComponent != null && localComponent.equals(component)) {
 				if (localComponent != null && localComponent.equals(component)) {
 					component = null;
 					component = null;
 				}
 				}

+ 2 - 1
search-console/src/main/java/com/uas/search/console/model/ComponentSimpleInfo.java

@@ -124,8 +124,9 @@ public class ComponentSimpleInfo implements Serializable {
 		}
 		}
 		ComponentSimpleInfo other = (ComponentSimpleInfo) otherObject;
 		ComponentSimpleInfo other = (ComponentSimpleInfo) otherObject;
 		// 不比较属性值
 		// 不比较属性值
+		// code写入索引时转为了小写
 		return Objects.equals(id, other.getId()) && Objects.equals(uuid, other.getUuid())
 		return Objects.equals(id, other.getId()) && Objects.equals(uuid, other.getUuid())
-				&& Objects.equals(code, other.getCode()) && Objects.equals(kindid, other.getKindid())
+				&& Objects.equals(code, other.getCode().toLowerCase()) && Objects.equals(kindid, other.getKindid())
 				&& Objects.equals(brandid, other.getBrandid());
 				&& Objects.equals(brandid, other.getBrandid());
 	}
 	}