From 59c50176c518a7c4399a43050f2c79194b2910dd Mon Sep 17 00:00:00 2001 From: lexluo09 <39718951+lexluo09@users.noreply.github.com> Date: Fri, 23 Aug 2024 16:33:23 +0800 Subject: [PATCH] (improvement)(chat) Fix the issue of duplicate addition of the 'data date' in the rule pattern. (#1597) --- .../supersonic/headless/chat/corrector/TimeCorrector.java | 3 ++- .../supersonic/headless/chat/utils/QueryReqBuilder.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/TimeCorrector.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/TimeCorrector.java index 41854ef05..52022edb3 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/TimeCorrector.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/TimeCorrector.java @@ -57,7 +57,8 @@ public class TimeCorrector extends BaseSemanticCorrector { DataSetSchema dataSetSchema = chatQueryContext.getSemanticSchema().getDataSetSchemaMap().get(dataSetId); if (Objects.isNull(dataSetSchema) || Objects.isNull(dataSetSchema.getPartitionDimension()) - || Objects.isNull(dataSetSchema.getPartitionDimension().getName())) { + || Objects.isNull(dataSetSchema.getPartitionDimension().getName()) + || TimeDimensionEnum.containsZhTimeDimension(whereFields)) { return; } String partitionDimension = dataSetSchema.getPartitionDimension().getName(); diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/utils/QueryReqBuilder.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/utils/QueryReqBuilder.java index 0d5aaefee..8b3636263 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/utils/QueryReqBuilder.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/utils/QueryReqBuilder.java @@ -212,7 +212,8 @@ public class QueryReqBuilder { private static boolean isDateFieldAlreadyPresent(SemanticParseInfo parseInfo, String dateField) { return parseInfo.getDimensions().stream() - .anyMatch(dimension -> dimension.getBizName().equalsIgnoreCase(dateField)); + .anyMatch(dimension -> dimension.getBizName().equalsIgnoreCase(dateField) + || dimension.containsPartitionTime()); } private static void addDimension(SemanticParseInfo parseInfo, SchemaElement dimension) {