Commit 78e27da4 by zhaoyanchao

同义词去重时 需要首关键字相同

parent 9d2318d3
...@@ -63,6 +63,15 @@ func permutation(arr [] string, begin int, lst *list.List) { ...@@ -63,6 +63,15 @@ func permutation(arr [] string, begin int, lst *list.List) {
} }
} }
//func main() {
// var h = []string{"a","b","c","d"}
// lst := list.New()
// permutation(h,1,lst)
// for p := lst.Front(); p != nil; p = p.Next() {
// fmt.Println(p.Value)
// }
//}
func convertToPinyin(str string) string { func convertToPinyin(str string) string {
var ret string var ret string
for _, v := range str { for _, v := range str {
......
...@@ -288,7 +288,9 @@ func queryIndex(idFlag int, db *sql.DB, bulkProcessor *elastic.BulkProcessor, wg ...@@ -288,7 +288,9 @@ func queryIndex(idFlag int, db *sql.DB, bulkProcessor *elastic.BulkProcessor, wg
} }
// 以空格为分隔符分开的词,如果第一个词相同,其余的词 只有顺序差异,则视为相同的记录,需要合并
// 如 nike 男 鞋, nike 鞋 男。 第一个词相同,且总体词的集合相同,则合并
// 而 nike 男鞋 和 男鞋 nike 则不能合并(nike 男鞋 合并到 男鞋 nike 上,则减少了输入nike 时的可能提示 )
func existSameWord(keyword string) (value interface{}, ok bool) { func existSameWord(keyword string) (value interface{}, ok bool) {
fields := strings.Fields(keyword) fields := strings.Fields(keyword)
...@@ -300,7 +302,7 @@ func existSameWord(keyword string) (value interface{}, ok bool) { ...@@ -300,7 +302,7 @@ func existSameWord(keyword string) (value interface{}, ok bool) {
return nil,false return nil,false
} }
lst := list.New() lst := list.New()
permutation(fields,0,lst) permutation(fields,1,lst)
for p := lst.Front(); p != nil ; p = p.Next() { for p := lst.Front(); p != nil ; p = p.Next() {
if v, isExist := wordMap.Load(p.Value); isExist { if v, isExist := wordMap.Load(p.Value); isExist {
return v,true return v,true
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment