Browse Source

wip:原词

wangshan 4 months ago
parent
commit
87b4a2c09b
1 changed files with 10 additions and 7 deletions
  1. 10 7
      common/src/qfw/util/jy/jy.go

+ 10 - 7
common/src/qfw/util/jy/jy.go

@@ -431,11 +431,14 @@ func ClearUserCache(middleground *Middleground, positionId int64) {
 }
 
 // 关键词分词处理
-func KeywordsProcessing(keywords, sep string) string {
+func KeywordsProcessing(keywords, originalWord, sep string) string {
 	keywords = MatchSpace.ReplaceAllString(keywords, " ")
 	if keywords == "" || len(strings.Split(keywords, sep)) == 1 {
 		return keywords
 	}
+	if originalWord == "" {
+		originalWord = strings.ReplaceAll(keywords, sep, "")
+	}
 	var newWords = make([]string, 0, 0)
 	if keywords != "" && len(strings.Split(keywords, sep)) > 1 {
 		var words = strings.Split(keywords, sep)
@@ -449,32 +452,32 @@ func KeywordsProcessing(keywords, sep string) string {
 				//compare
 				if k == 0 { //first
 					newWord := v + words[k+1]
-					if strings.Contains(keywords, newWord) { //组合后 必须包含
+					if strings.Contains(originalWord, newWord) { //组合后 必须包含
 						words[k+1] = newWord
 					}
 				} else if k == len(words)-1 { //last
 					newWord := newWords[len(newWords)-1] + v
-					if strings.Contains(keywords, newWord) {
+					if strings.Contains(originalWord, newWord) {
 						newWords[len(newWords)-1] = newWord
 					}
 				} else {
 					if len([]rune(newWords[len(newWords)-1])) < len([]rune(words[k+1])) {
 						newWord := newWords[len(newWords)-1] + v
-						if strings.Contains(keywords, newWord) {
+						if strings.Contains(originalWord, newWord) {
 							newWords[len(newWords)-1] = newWord
 						} else {
 							newWord = v + words[k+1]
-							if strings.Contains(keywords, newWord) { //组合后 必须包含
+							if strings.Contains(originalWord, newWord) { //组合后 必须包含
 								words[k+1] = newWord
 							}
 						}
 					} else {
 						newWord := v + words[k+1]
-						if strings.Contains(keywords, newWord) { //组合后 必须包含
+						if strings.Contains(originalWord, newWord) { //组合后 必须包含
 							words[k+1] = newWord
 						} else {
 							newWord = newWords[len(newWords)-1] + v
-							if strings.Contains(keywords, newWord) {
+							if strings.Contains(originalWord, newWord) {
 								newWords[len(newWords)-1] = newWord
 							}
 						}