diff --git a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/request/QueryMapReq.java b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/request/QueryMapReq.java index 4eac5510a..4f0b166b9 100644 --- a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/request/QueryMapReq.java +++ b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/request/QueryMapReq.java @@ -14,7 +14,7 @@ public class QueryMapReq { private String queryText; private List dataSetNames; private User user; - private Integer topN = 10; + private Integer topN = 0; private MapModeEnum mapModeEnum = MapModeEnum.STRICT; private QueryDataType queryDataType = QueryDataType.ALL; } diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/chat/mapper/BaseMapper.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/chat/mapper/BaseMapper.java index be968ee4c..fe297c1e8 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/chat/mapper/BaseMapper.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/chat/mapper/BaseMapper.java @@ -46,6 +46,7 @@ public abstract class BaseMapper implements SchemaMapper { private void filter(QueryContext queryContext) { filterByDataSetId(queryContext); + filterTermByDetectWordLen(queryContext); switch (queryContext.getQueryDataType()) { case TAG: filterByQueryDataType(queryContext, element -> !(element.getIsTag() > 0)); @@ -79,6 +80,22 @@ public abstract class BaseMapper implements SchemaMapper { } } + private static void filterTermByDetectWordLen(QueryContext queryContext) { + Map> dataSetElementMatches = + queryContext.getMapInfo().getDataSetElementMatches(); + for (Map.Entry> entry : dataSetElementMatches.entrySet()) { + List value = entry.getValue(); + if (!CollectionUtils.isEmpty(value)) { + value.removeIf(schemaElementMatch -> { + if (!SchemaElementType.TERM.equals(schemaElementMatch.getElement().getType())) { + return false; + } + return StringUtils.length(schemaElementMatch.getDetectWord()) <= 1; + }); + } + } + } + private static void filterByQueryDataType(QueryContext queryContext, Predicate needRemovePredicate) { queryContext.getMapInfo().getDataSetElementMatches().values().stream().forEach( schemaElementMatches -> schemaElementMatches.removeIf( diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/MetaDiscoveryServiceImpl.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/MetaDiscoveryServiceImpl.java index 44fa1f201..d7cadcad5 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/MetaDiscoveryServiceImpl.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/MetaDiscoveryServiceImpl.java @@ -119,7 +119,9 @@ public class MetaDiscoveryServiceImpl implements MetaDiscoveryService { SchemaMapInfo mapInfo, Map dataSetMap) { Map> result = new HashMap<>(); - + if (0 == topN) { + return result; + } SemanticSchema semanticSchema = semanticService.getSemanticSchema(); for (Map.Entry> entry : mapInfo.getDataSetElementMatches().entrySet()) { Long dataSetId = entry.getKey();