fix bug of token4-token7 model config complete op

This commit is contained in:
douxu 2025-12-23 16:44:31 +08:00
parent 8313b16dfe
commit c29f58f388
1 changed files with 44 additions and 1 deletions

View File

@ -395,6 +395,32 @@ func handleLevelFuzzySearch(ctx context.Context, rdb *redis.Client, hierarchy co
specificalKey = inputSlice[specificalKeyIndex] specificalKey = inputSlice[specificalKeyIndex]
} }
if recommendLenType == constants.IsLocalRecommendLength && hierarchy == constants.ConfigRecommendHierarchyType {
// token4-token7 model and query all config keys
redisSetKey = constants.RedisAllCompTagSetKey
keyExists, err := rdb.SIsMember(ctx, redisSetKey, specificalKey).Result()
if err != nil {
logger.Error(ctx, "check key exist from redis set failed ", "key", redisSetKey, "error", err)
fanInChan <- SearchResult{
RecommendType: hierarchy,
QueryDatas: nil,
IsFuzzy: false,
Err: err,
}
return
}
if !keyExists {
fanInChan <- SearchResult{
RecommendType: hierarchy,
QueryDatas: []string{},
IsFuzzy: false,
Err: nil,
}
return
}
}
members, err := queryMemberFromSpecificsLevel(ctx, rdb, hierarchy, specificalKey) members, err := queryMemberFromSpecificsLevel(ctx, rdb, hierarchy, specificalKey)
if err != nil && err != redis.Nil { if err != nil && err != redis.Nil {
logger.Error(ctx, "query members from redis by special key failed", "key", specificalKey, "member", searchInput, "op", "SMember", "error", err) logger.Error(ctx, "query members from redis by special key failed", "key", specificalKey, "member", searchInput, "op", "SMember", "error", err)
@ -459,6 +485,10 @@ func handleLevelFuzzySearch(ctx context.Context, rdb *redis.Client, hierarchy co
return return
} }
if hierarchy == constants.MeasTagRecommendHierarchyType || hierarchy == constants.ConfigRecommendHierarchyType {
fmt.Printf("fuzzy origin recommneds:%v\n", recommends)
}
if len(recommends) == 0 { if len(recommends) == 0 {
logger.Info(ctx, "fuzzy search without result", "hierarchy", hierarchy, "search_input", searchInput, "error", err) logger.Info(ctx, "fuzzy search without result", "hierarchy", hierarchy, "search_input", searchInput, "error", err)
} }
@ -489,8 +519,10 @@ func runFuzzySearch(ctx context.Context, searchInput string, searchPrefix string
configToken = searchPrefix[lastDotIndex+1:] configToken = searchPrefix[lastDotIndex+1:]
comparePrefix = searchPrefix[:lastDotIndex] comparePrefix = searchPrefix[:lastDotIndex]
} }
fmt.Printf("run fuzzy search, original searchPrefix:%s\n", searchPrefix)
fmt.Printf("run fuzzy search, original comparePrefix:%s\n", comparePrefix)
} }
for searchInputLen != 0 { for searchInputLen != 0 {
fuzzyInput := strings.Join([]string{comparePrefix, searchInput}, ".") fuzzyInput := strings.Join([]string{comparePrefix, searchInput}, ".")
results, err := ac.SuggestOpts(fuzzyInput, redisearch.SuggestOptions{ results, err := ac.SuggestOpts(fuzzyInput, redisearch.SuggestOptions{
@ -511,6 +543,8 @@ func runFuzzySearch(ctx context.Context, searchInput string, searchPrefix string
searchInputLen = len(searchInput) searchInputLen = len(searchInput)
continue continue
} }
fmt.Printf("len of fuzzy search results:%d\n", len(results))
fmt.Printf("fuzzy search results:%v\n", results)
var recommends []string var recommends []string
for _, result := range results { for _, result := range results {
@ -534,14 +568,23 @@ func runFuzzySearch(ctx context.Context, searchInput string, searchPrefix string
termHierarchyLen = strings.Count(result.Term, ".") + 1 termHierarchyLen = strings.Count(result.Term, ".") + 1
} }
fmt.Printf("termHierarchyLen:%d\n", termHierarchyLen)
fmt.Printf("compareHierarchy:%d\n", compareHierarchyLen)
fmt.Printf("termPrefix:%s\n", termPrefix)
fmt.Printf("comparePrefix:%s\n", comparePrefix)
if termHierarchyLen == compareHierarchyLen && termPrefix == comparePrefix && strings.HasPrefix(termLastPart, searchInput) { if termHierarchyLen == compareHierarchyLen && termPrefix == comparePrefix && strings.HasPrefix(termLastPart, searchInput) {
recommend := result.Term recommend := result.Term
if hierarchy == constants.MeasTagRecommendHierarchyType { if hierarchy == constants.MeasTagRecommendHierarchyType {
recommend = strings.Join([]string{termPrefix, configToken, termLastPart}, ".") recommend = strings.Join([]string{termPrefix, configToken, termLastPart}, ".")
} }
fmt.Printf("process recommend:%s\n", recommend)
recommends = append(recommends, recommend) recommends = append(recommends, recommend)
} }
} }
fmt.Println("--------------")
fmt.Printf("recommends:%v\n", recommends)
fmt.Printf("len of recommends:%d\n", len(recommends))
return recommends, nil return recommends, nil
} }
return []string{}, nil return []string{}, nil