[fix](chat) fix visibility when searching (#72)

This commit is contained in:
mainmain
2023-09-11 18:05:24 +08:00
committed by GitHub
parent a4fc11887c
commit eca92d2493
3 changed files with 13 additions and 13 deletions

View File

@@ -11,7 +11,7 @@
- add datasource agg_time option - add datasource agg_time option
- add function name adaptor in clickhouse - add function name adaptor in clickhouse
- add dimension and metric show in dsl - add dimension and metric show in dsl
- add support for dimensions and metrics to dynamically update the knowledge base
### Updated ### Updated
- update user guide doc - update user guide doc

View File

@@ -197,6 +197,15 @@ public class SearchServiceImpl implements SearchService {
.schemaElementType(schemaElementType) .schemaElementType(schemaElementType)
.subRecommend(wordName) .subRecommend(wordName)
.build(); .build();
ItemNameVisibilityInfo visibility = (ItemNameVisibilityInfo) caffeineCache.getIfPresent(modelId);
if (visibility == null) {
visibility = configService.getVisibilityByModelId(modelId);
caffeineCache.put(modelId, visibility);
}
if (visibility.getBlackMetricNameList().contains(searchResult.getRecommend())
|| visibility.getBlackDimNameList().contains(searchResult.getRecommend())) {
return searchResults;
}
if (metricModelCount <= 0 && !existMetricAndDimension) { if (metricModelCount <= 0 && !existMetricAndDimension) {
if (filterByQueryFilter(wordName, queryFilters)) { if (filterByQueryFilter(wordName, queryFilters)) {
return searchResults; return searchResults;
@@ -204,12 +213,7 @@ public class SearchServiceImpl implements SearchService {
searchResults.add(searchResult); searchResults.add(searchResult);
int metricSize = getMetricSize(natureToNameMap); int metricSize = getMetricSize(natureToNameMap);
//invisibility to filter metrics //invisibility to filter metrics
ItemNameVisibilityInfo itemNameVisibility = (ItemNameVisibilityInfo) caffeineCache.getIfPresent(modelId); List<String> blackMetricNameList = visibility.getBlackMetricNameList();
if (itemNameVisibility == null) {
itemNameVisibility = configService.getVisibilityByModelId(modelId);
caffeineCache.put(modelId, itemNameVisibility);
}
List<String> blackMetricNameList = itemNameVisibility.getBlackMetricNameList();
List<String> metrics = filerMetricsByModel(metricsDb, modelId, metricSize * 3) List<String> metrics = filerMetricsByModel(metricsDb, modelId, metricSize * 3)
.stream().filter(o -> !blackMetricNameList.contains(o)) .stream().filter(o -> !blackMetricNameList.contains(o))
.limit(metricSize).collect(Collectors.toList()); .limit(metricSize).collect(Collectors.toList());
@@ -328,14 +332,10 @@ public class SearchServiceImpl implements SearchService {
visibility = configService.getVisibilityByModelId(modelId); visibility = configService.getVisibilityByModelId(modelId);
caffeineCache.put(modelId, visibility); caffeineCache.put(modelId, visibility);
} }
if (semanticType.equals(SchemaElementType.DIMENSION) if (!visibility.getBlackMetricNameList().contains(mapResult.getName())
&& !visibility.getBlackDimNameList().contains(mapResult.getName())) { && !visibility.getBlackDimNameList().contains(mapResult.getName())) {
searchResults.add(searchResult); searchResults.add(searchResult);
} }
if (semanticType.equals(SchemaElementType.METRIC)
&& !visibility.getBlackMetricNameList().contains(mapResult.getName())) {
searchResults.add(searchResult);
}
} }
log.info("parseResult:{},dimensionMetricClassIds:{},possibleModels:{}", mapResult, dimensionMetricClassIds, log.info("parseResult:{},dimensionMetricClassIds:{},possibleModels:{}", mapResult, dimensionMetricClassIds,
possibleModels); possibleModels);

View File

@@ -167,7 +167,7 @@ public class HanlpHelper {
public static void removeFromCustomDictionary(DictWord dictWord) { public static void removeFromCustomDictionary(DictWord dictWord) {
log.info("dictWord:{}", dictWord); log.info("dictWord:{}", dictWord);
CoreDictionary.Attribute attribute = getDynamicCustomDictionary().get(dictWord.getWord()); CoreDictionary.Attribute attribute = getDynamicCustomDictionary().get(dictWord.getWord());
if (attribute != null) { if (attribute == null) {
return; return;
} }
log.info("get attribute:{}", attribute); log.info("get attribute:{}", attribute);