mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-11 03:58:14 +00:00
[fix](chat) fix visibility when searching (#72)
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user