go-common/app/interface/openplatform/article/service/search.go
2019-04-22 18:49:16 +08:00

46 lines
1.0 KiB
Go

package service
import (
"context"
"regexp"
"strings"
"time"
search "go-common/app/interface/openplatform/article/model/search"
"go-common/library/log"
)
const _sourceType = "article"
// Segment .
func (s *Service) Segment(c context.Context, id int32, content string, withTag int, remarks string) (keywords []string, err error) {
var (
source = _sourceType
trackid = int32(time.Now().Unix())
res *search.TagboxResponse
)
if withTag == 1 {
content = strings.Replace(content, " ", " ", -1)
rule := "\\<[\\S\\s]+?\\>"
reg, _ := regexp.Compile(rule)
content = reg.ReplaceAllString(content, "")
}
req := &search.TagboxRequest{
Id: &id,
SourceType: &source,
Content: &content,
Trackid: &trackid,
Remarks: &remarks,
}
if res, err = s.searchRPC.Segment(c, req); err != nil {
log.Error("s.Segment error(%+v), params(%+v)", err, req)
return
}
if *res.ExecCode != int32(0) {
log.Error("creation: s.segment id(%d), code(%d)", id, res.ExecCode)
return
}
keywords = res.GetKeywords()
return
}