123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- 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
- }
|