diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/MapFilter.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/MapFilter.java index 948adfd15..cf388622a 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/MapFilter.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/mapper/MapFilter.java @@ -21,6 +21,7 @@ public class MapFilter { public static void filter(ChatQueryContext chatQueryContext) { filterByDataSetId(chatQueryContext); filterByDetectWordLenLessThanOne(chatQueryContext); + twoCharactersMustEqual(chatQueryContext); switch (chatQueryContext.getQueryDataType()) { case TAG: filterByQueryDataType(chatQueryContext, element -> !(element.getIsTag() > 0)); @@ -70,6 +71,19 @@ public class MapFilter { } } + private static void twoCharactersMustEqual(ChatQueryContext chatQueryContext) { + Map> dataSetElementMatches = + chatQueryContext.getMapInfo().getDataSetElementMatches(); + for (Map.Entry> entry : dataSetElementMatches.entrySet()) { + List value = entry.getValue(); + if (!CollectionUtils.isEmpty(value)) { + value.removeIf(schemaElementMatch -> StringUtils + .length(schemaElementMatch.getDetectWord()) <= 2 + && schemaElementMatch.getSimilarity() < 1); + } + } + } + public static void filterByQueryDataType(ChatQueryContext chatQueryContext, Predicate needRemovePredicate) { Map> dataSetElementMatches =