feat-IRONFANS-117-Robin #438
|
@ -8,6 +8,7 @@ import (
|
|||
"service/dbstruct"
|
||||
"service/library/elasticsearchdb"
|
||||
"service/library/logger"
|
||||
"unicode"
|
||||
|
||||
"service/api/consts"
|
||||
streameracctproto "service/api/proto/streamer_acct/proto"
|
||||
|
@ -70,10 +71,18 @@ func (es *ElasticSearch) GetStreamerAcctListFuzzilyByName(ctx *gin.Context, req
|
|||
|
||||
var nameClause elastic.Query
|
||||
// 查询文字长度小于短语匹配的,进行Term匹配,否则进行短语匹配
|
||||
if len(req.Name) < consts.StreamerAcct_MatchPhraseLen {
|
||||
nameClause = elastic.NewTermQuery("name", req.Name)
|
||||
len := 0
|
||||
for _, char := range req.Name {
|
||||
if unicode.Is(unicode.Han, char) {
|
||||
len++
|
||||
} else {
|
||||
len++
|
||||
}
|
||||
}
|
||||
if len < consts.StreamerAcct_MatchPhraseLen {
|
||||
nameClause = elastic.NewTermQuery("name.short_char", req.Name)
|
||||
} else {
|
||||
nameClause = elastic.NewMatchPhraseQuery("name", req.Name)
|
||||
nameClause = elastic.NewMatchPhraseQuery("name.long_char", req.Name)
|
||||
}
|
||||
query := elastic.NewBoolQuery()
|
||||
delFlagClause := elastic.NewMatchQuery("del_flag", 0)
|
||||
|
@ -105,12 +114,20 @@ func (es *ElasticSearch) GetStreamerAcctListFuzzilyByUserId(ctx *gin.Context, re
|
|||
var nameClause elastic.Query
|
||||
var userIdStringClause elastic.Query
|
||||
// 查询文字长度小于短语匹配的,进行Term匹配,否则进行短语匹配
|
||||
if len(req.UserIdString) < consts.StreamerAcct_MatchPhraseLen {
|
||||
nameClause = elastic.NewTermQuery("name", req.UserIdString)
|
||||
userIdStringClause = elastic.NewTermQuery("user_id_string", req.UserIdString)
|
||||
len := 0
|
||||
for _, char := range req.UserIdString {
|
||||
if unicode.Is(unicode.Han, char) {
|
||||
len++
|
||||
} else {
|
||||
len++
|
||||
}
|
||||
}
|
||||
if len < consts.StreamerAcct_MatchPhraseLen {
|
||||
nameClause = elastic.NewTermQuery("name.short_char", req.UserIdString)
|
||||
userIdStringClause = elastic.NewTermQuery("user_id_string.short_char", req.UserIdString)
|
||||
} else {
|
||||
nameClause = elastic.NewMatchQuery("name", req.UserIdString)
|
||||
userIdStringClause = elastic.NewMatchPhraseQuery("user_id_string", req.UserIdString)
|
||||
nameClause = elastic.NewMatchPhraseQuery("name.long_char", req.UserIdString)
|
||||
userIdStringClause = elastic.NewMatchPhraseQuery("user_id_string.long_char", req.UserIdString)
|
||||
}
|
||||
orClause := elastic.NewBoolQuery().Should(nameClause, userIdStringClause)
|
||||
query := elastic.NewBoolQuery().Must()
|
||||
|
|
Loading…
Reference in New Issue