From cb1ad9408647a0536d718a02c3ca8d519a8aaa54 Mon Sep 17 00:00:00 2001 From: lexluo09 <39718951+lexluo09@users.noreply.github.com> Date: Fri, 10 Nov 2023 22:00:24 +0800 Subject: [PATCH] (improvement)(chat) struct query need to correct (#366) --- .../chat/service/impl/QueryServiceImpl.java | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/service/impl/QueryServiceImpl.java b/chat/core/src/main/java/com/tencent/supersonic/chat/service/impl/QueryServiceImpl.java index 068d00e61..153447cf0 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/service/impl/QueryServiceImpl.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/service/impl/QueryServiceImpl.java @@ -288,7 +288,7 @@ public class QueryServiceImpl implements QueryService { SemanticParseInfo parseInfo = getSemanticParseInfo(queryData, chatParseDO); SemanticQuery semanticQuery = QueryManager.createQuery(parseInfo.getQueryMode()); - + semanticQuery.setParseInfo(parseInfo); if (S2SQLQuery.QUERY_MODE.equals(parseInfo.getQueryMode())) { Map> filedNameToValueMap = new HashMap<>(); Map> havingFiledNameToValueMap = new HashMap<>(); @@ -325,21 +325,19 @@ public class QueryServiceImpl implements QueryService { if (StringUtils.isNotBlank(explainSql)) { parseInfo.getSqlInfo().setQuerySQL(explainSql); } + } else { + //init s2sql + semanticQuery.initS2Sql(user); + QueryReq queryReq = new QueryReq(); + queryReq.setQueryFilters(new QueryFilters()); + queryReq.setUser(user); + //correct s2sql + semanticCorrectors.stream().forEach(correction -> { + correction.correct(queryReq, semanticQuery.getParseInfo()); + }); + //update parserInfo + parseInfoService.updateParseInfo(semanticQuery.getParseInfo()); } - semanticQuery.setParseInfo(parseInfo); - //init s2sql - semanticQuery.initS2Sql(user); - QueryReq queryReq = new QueryReq(); - queryReq.setQueryFilters(new QueryFilters()); - queryReq.setUser(user); - - //correct s2sql - semanticCorrectors.stream().forEach(correction -> { - correction.correct(queryReq, semanticQuery.getParseInfo()); - }); - //update parserInfo - parseInfoService.updateParseInfo(semanticQuery.getParseInfo()); - QueryResult queryResult = semanticQuery.execute(user); queryResult.setChatContext(semanticQuery.getParseInfo()); SemanticService semanticService = ContextUtils.getBean(SemanticService.class);