From b55b4c130e184620d89249b26cf50959d49d05ba Mon Sep 17 00:00:00 2001 From: lexluo09 <39718951+lexluo09@users.noreply.github.com> Date: Fri, 5 Jan 2024 12:04:55 +0800 Subject: [PATCH] (improvement)(chat) Add queryFilters setting to queryContext. (#601) --- .../chat/core/mapper/QueryFilterMapper.java | 13 +++++++------ .../chat/server/service/impl/QueryServiceImpl.java | 1 + 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/chat/core/src/main/java/com/tencent/supersonic/chat/core/mapper/QueryFilterMapper.java b/chat/core/src/main/java/com/tencent/supersonic/chat/core/mapper/QueryFilterMapper.java index 7c91c39b0..869610582 100644 --- a/chat/core/src/main/java/com/tencent/supersonic/chat/core/mapper/QueryFilterMapper.java +++ b/chat/core/src/main/java/com/tencent/supersonic/chat/core/mapper/QueryFilterMapper.java @@ -19,6 +19,7 @@ import org.springframework.util.CollectionUtils; @Slf4j public class QueryFilterMapper implements SchemaMapper { + private double similarity = 1.0; @Override @@ -35,7 +36,7 @@ public class QueryFilterMapper implements SchemaMapper { schemaElementMatches = Lists.newArrayList(); schemaMapInfo.setMatchedElements(modelId, schemaElementMatches); } - addValueSchemaElementMatch(queryContext, schemaElementMatches, queryReq.getQueryFilters()); + addValueSchemaElementMatch(queryContext, schemaElementMatches); } private void clearOtherSchemaElementMatch(Long modelId, SchemaMapInfo schemaMapInfo) { @@ -47,12 +48,12 @@ public class QueryFilterMapper implements SchemaMapper { } private List addValueSchemaElementMatch(QueryContext queryContext, - List candidateElementMatches, - QueryFilters queryFilter) { - if (queryFilter == null || CollectionUtils.isEmpty(queryFilter.getFilters())) { + List candidateElementMatches) { + QueryFilters queryFilters = queryContext.getQueryFilters(); + if (queryFilters == null || CollectionUtils.isEmpty(queryFilters.getFilters())) { return candidateElementMatches; } - for (QueryFilter filter : queryFilter.getFilters()) { + for (QueryFilter filter : queryFilters.getFilters()) { if (checkExistSameValueSchemaElementMatch(filter, candidateElementMatches)) { continue; } @@ -76,7 +77,7 @@ public class QueryFilterMapper implements SchemaMapper { } private boolean checkExistSameValueSchemaElementMatch(QueryFilter queryFilter, - List schemaElementMatches) { + List schemaElementMatches) { List valueSchemaElements = schemaElementMatches.stream().filter(schemaElementMatch -> SchemaElementType.VALUE.equals(schemaElementMatch.getElement().getType())) .collect(Collectors.toList()); diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/impl/QueryServiceImpl.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/impl/QueryServiceImpl.java index 862ca30a5..4b147174e 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/impl/QueryServiceImpl.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/impl/QueryServiceImpl.java @@ -196,6 +196,7 @@ public class QueryServiceImpl implements QueryService { Map nameToPlugin = pluginService.getNameToPlugin(); QueryContext queryCtx = QueryContext.builder() .request(queryReq) + .queryFilters(queryReq.getQueryFilters()) .semanticSchema(semanticSchema) .candidateQueries(new ArrayList<>()) .mapInfo(new SchemaMapInfo())