From 8b369085c010404243d8a9f31cea84ab50c6e5ca Mon Sep 17 00:00:00 2001 From: satori Date: Tue, 19 Nov 2024 00:51:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=87=8F=E5=B0=91=E4=BC=A0=E8=BE=93=E8=80=97?= =?UTF-8?q?=E6=97=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++-- api/gorse.go | 11 +++++++++-- api/graphql.go | 16 +++++++--------- models/zincsearch.go | 29 +++++++++++++++-------------- 4 files changed, 33 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index 4d28519..887de27 100644 --- a/README.md +++ b/README.md @@ -45,8 +45,8 @@ CREATE FULLTEXT INDEX idx_tags ON web_images (tags); CREATE FULLTEXT INDEX idx_tags ON web_article (tags); -- 同步收藏 -ALTER TABLE web_praise ADD COLUMN gorse TINYINT UNSIGNED; - +ALTER TABLE web_praise ADD COLUMN gorse BOOLEAN DEFAULT FALSE; +ALTER TABLE web_praise ADD COLUMN gorse BOOLEAN DEFAULT FALSE; ``` ```bash diff --git a/api/gorse.go b/api/gorse.go index 51bdc92..5ba3565 100644 --- a/api/gorse.go +++ b/api/gorse.go @@ -62,11 +62,12 @@ func PutPraises(page int) error { CreateTime time.Time } - if err := db.Table("web_praises").Select("id", "praise_id", "user_id", "create_time").Where("type = ?", 4).Limit(100).Offset(i * 100).Scan(&data).Error; err != nil { - fmt.Println("获取点赞记录失败", err) + if err := db.Table("web_praise").Select("id", "praise_id", "user_id", "create_time").Where("gorse = false").Where("type = ?", 4).Limit(100).Scan(&data).Error; err != nil { + fmt.Println("获取图像点赞记录失败", err) return err } + var ids []int for _, item := range data { fmt.Println(item.ID, item.UserID, item.PraiseID, item.CreateTime) feedbacks = append(feedbacks, client.Feedback{ @@ -75,6 +76,12 @@ func PutPraises(page int) error { ItemId: fmt.Sprintf("%d", item.PraiseID), Timestamp: item.CreateTime.Format("2006-01-02 15:04:05"), }) + ids = append(ids, item.ID) + } + + if err := db.Table("web_praise").Where("id in (?)", data).Update("gorse", true).Error; err != nil { + fmt.Println("更新点赞记录失败", err) + return err } if _, err := gorse.InsertFeedback(ctx, feedbacks); err != nil { diff --git a/api/graphql.go b/api/graphql.go index fdaca22..66f88c5 100644 --- a/api/graphql.go +++ b/api/graphql.go @@ -598,10 +598,9 @@ func NewSchema(config Config) (graphql.Schema, error) { }, }, }, - "sort": []string{ - "_score", - }, - "size": 2000, + "_source": false, + "sort": []string{"_score"}, + "size": 100000, }) if err != nil { @@ -621,7 +620,6 @@ func NewSchema(config Config) (graphql.Schema, error) { } query = query.Where(goqu.Ex{"web_images.id": goqu.Op{"in": item}}).Select("web_images.id", goqu.L( - //fmt.Sprintf("ROW_NUMBER() OVER(ORDER BY FIELD(%s, %s))", "web_images.id", regexp.MustCompile(`[\[\]]`).ReplaceAllString(strings.Join(strings.Fields(fmt.Sprint(item)), ", "), "")), fmt.Sprintf("ROW_NUMBER() OVER(ORDER BY %s %s)", "web_images.id", "DESC"), ).As("row_num")) } @@ -886,7 +884,7 @@ func NewSchema(config Config) (graphql.Schema, error) { limit = args.Last } - fmt.Println("SQL:", sql) + //fmt.Println("SQL:", sql) sql = fmt.Sprintf(` WITH RankedArticles AS (%s) @@ -896,7 +894,7 @@ func NewSchema(config Config) (graphql.Schema, error) { ORDER BY LimitedRanked.row_num LIMIT %d `, sql, cursor, limit) - fmt.Println("cursor:", cursor, limit) + //fmt.Println("cursor:", cursor, limit) if err := db.Raw(sql).Scan(&images).Error; err != nil { fmt.Println("获取图像列表失败", err) @@ -909,8 +907,8 @@ func NewSchema(config Config) (graphql.Schema, error) { } var find = db.Where("web_images.id IN ?", ids) - for index, item := range LoadItem(p.Info.FieldASTs[0].SelectionSet.Selections) { - fmt.Println(index, item) + for _, item := range LoadItem(p.Info.FieldASTs[0].SelectionSet.Selections) { + //fmt.Println(index, item) find = find.Preload(item) } diff --git a/models/zincsearch.go b/models/zincsearch.go index 901b3e0..0c07b1d 100644 --- a/models/zincsearch.go +++ b/models/zincsearch.go @@ -47,19 +47,19 @@ type Response struct { ID string `json:"_id"` Score float64 `json:"_score"` Timestamp string `json:"@timestamp"` - Source struct { - Timestamp string `json:"@timestamp"` - Athlete string `json:"Athlete"` - City string `json:"City"` - Country string `json:"Country"` - Discipline string `json:"Discipline"` - Event string `json:"Event"` - Gender string `json:"Gender"` - Medal string `json:"Medal"` - Season string `json:"Season"` - Sport string `json:"Sport"` - Year int `json:"Year"` - } `json:"_source"` + //Source struct { + // Timestamp string `json:"@timestamp"` + // Athlete string `json:"Athlete"` + // City string `json:"City"` + // Country string `json:"Country"` + // Discipline string `json:"Discipline"` + // Event string `json:"Event"` + // Gender string `json:"Gender"` + // Medal string `json:"Medal"` + // Season string `json:"Season"` + // Sport string `json:"Sport"` + // Year int `json:"Year"` + //} `json:"_source"` } `json:"hits"` } `json:"hits"` } @@ -148,7 +148,8 @@ func ZincSearch(query map[string]interface{}) (rest Response, err error) { log.Println("解析响应失败", err) return } - return + + return rest, err } func ZincPut(data map[string]interface{}) (err error) {