diff --git a/server/dao/resource.go b/server/dao/resource.go index 1bbb797..f0da0ab 100644 --- a/server/dao/resource.go +++ b/server/dao/resource.go @@ -440,7 +440,13 @@ func BatchGetResources(ids []uint) ([]model.Resource, error) { } var resources []model.Resource - if err := db.Where("id IN ?", uniqueIds).Find(&resources).Error; err != nil { + if err := db. + Where("id IN ?", uniqueIds). + Preload("User"). + Preload("Images"). + Preload("Tags"). + Find(&resources). + Error; err != nil { return nil, err } return resources, nil diff --git a/server/search/resource.go b/server/search/resource.go index 9444338..8bc4b1a 100644 --- a/server/search/resource.go +++ b/server/search/resource.go @@ -5,7 +5,6 @@ import ( "nysoure/server/dao" "nysoure/server/model" "nysoure/server/utils" - "regexp" "strconv" "time" @@ -21,11 +20,6 @@ type ResourceParams struct { var index bleve.Index -func removeSpaces(s string) string { - reg := regexp.MustCompile(`\s+`) - return reg.ReplaceAllString(s, " ") -} - func createIndex() error { for !dao.IsReady() { time.Sleep(1 * time.Second) @@ -39,10 +33,10 @@ func createIndex() error { } for _, r := range res { title := r.Title - title = removeSpaces(title) + title = utils.RemoveSpaces(title) altTitles := make([]string, len(r.AlternativeTitles)) for i, t := range r.AlternativeTitles { - altTitles[i] = removeSpaces(t) + altTitles[i] = utils.RemoveSpaces(t) } err := index.Index(fmt.Sprintf("%d", r.ID), ResourceParams{ Id: r.ID, @@ -78,7 +72,7 @@ func init() { } func SearchResource(keyword string) (map[uint]time.Time, error) { - keyword = removeSpaces(keyword) + keyword = utils.RemoveSpaces(keyword) query := bleve.NewMatchQuery(keyword) searchRequest := bleve.NewSearchRequest(query) diff --git a/server/service/resource.go b/server/service/resource.go index 87d9991..0eb5f51 100644 --- a/server/service/resource.go +++ b/server/service/resource.go @@ -6,6 +6,7 @@ import ( "nysoure/server/dao" "nysoure/server/model" "nysoure/server/search" + "nysoure/server/utils" "sort" "strconv" "strings" @@ -272,7 +273,7 @@ func SearchResource(query string, page int) ([]model.ResourceView, int, error) { } // check tag after removing spaces - trimmed := strings.ReplaceAll(query, " ", "") + trimmed := utils.RemoveSpaces(query) if trimmed != query { if err := checkTag(trimmed); err != nil { return nil, 0, err diff --git a/server/utils/string.go b/server/utils/string.go new file mode 100644 index 0000000..6a0e6d2 --- /dev/null +++ b/server/utils/string.go @@ -0,0 +1,8 @@ +package utils + +import "regexp" + +func RemoveSpaces(s string) string { + reg := regexp.MustCompile(`\s+`) + return reg.ReplaceAllString(s, " ") +}