migrate from github
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
package document_service
|
||||
|
||||
import (
|
||||
"context"
|
||||
"strings"
|
||||
|
||||
"github.com/XingfenD/yoresee_doc/internal/config"
|
||||
"github.com/XingfenD/yoresee_doc/internal/search"
|
||||
internal_dto "github.com/XingfenD/yoresee_doc/internal/service/dto"
|
||||
"github.com/XingfenD/yoresee_doc/pkg/storage"
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
func (s *DocumentService) applyElasticsearchKeywordFilter(ctx context.Context, req *internal_dto.DocumentsListReq) {
|
||||
if req == nil || req.FilterArgs == nil || req.FilterArgs.TitleKeyword == nil {
|
||||
return
|
||||
}
|
||||
keyword := strings.TrimSpace(*req.FilterArgs.TitleKeyword)
|
||||
if keyword == "" {
|
||||
return
|
||||
}
|
||||
if config.GlobalConfig == nil || !config.GlobalConfig.Elasticsearch.Enabled {
|
||||
logrus.Warnf("[Service layer: DocumentService] elasticsearch is disabled, degrade to db keyword search, keyword=%s", keyword)
|
||||
return
|
||||
}
|
||||
if storage.ES == nil {
|
||||
logrus.Warnf("[Service layer: DocumentService] elasticsearch client is nil, degrade to db keyword search, keyword=%s", keyword)
|
||||
return
|
||||
}
|
||||
|
||||
searchReq := search.DocumentSearchRequest{
|
||||
Keyword: keyword,
|
||||
DocType: req.FilterArgs.DocType,
|
||||
Tags: req.FilterArgs.Tags,
|
||||
CreateTimeRangeStart: req.FilterArgs.CreateTimeRangeStart,
|
||||
CreateTimeRangeEnd: req.FilterArgs.CreateTimeRangeEnd,
|
||||
UpdateTimeRangeStart: req.FilterArgs.UpdateTimeRangeStart,
|
||||
UpdateTimeRangeEnd: req.FilterArgs.UpdateTimeRangeEnd,
|
||||
Size: 5000,
|
||||
ListOwnDoc: req.ListOwnDoc,
|
||||
}
|
||||
if req.MetaArgs != nil {
|
||||
searchReq.UserID = req.MetaArgs.UserID
|
||||
searchReq.KnowledgeID = req.MetaArgs.KnowledgeID
|
||||
}
|
||||
|
||||
ids, err := search.SearchDocumentIDs(ctx, searchReq)
|
||||
if err != nil {
|
||||
logrus.Warnf("[Service layer: DocumentService] elasticsearch keyword search failed, keyword=%s, err=%+v", keyword, err)
|
||||
return
|
||||
}
|
||||
if len(ids) == 0 {
|
||||
logrus.Warnf("[Service layer: DocumentService] elasticsearch keyword search no hit, degrade to db keyword search, keyword=%s", keyword)
|
||||
return
|
||||
}
|
||||
req.SearchDocIDs = ids
|
||||
}
|
||||
Reference in New Issue
Block a user