From 143e4cd0770dc4108eec8b47d0f0efc117dc85d5 Mon Sep 17 00:00:00 2001 From: BoYanZh Date: Fri, 30 Dec 2022 14:20:04 +0800 Subject: [PATCH] fix: mysql FULLTEXT search (#2840) --- internal/db/db.go | 9 +++++---- internal/model/search.go | 7 ------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/internal/db/db.go b/internal/db/db.go index 400731b6..6cad404e 100644 --- a/internal/db/db.go +++ b/internal/db/db.go @@ -13,14 +13,15 @@ var db *gorm.DB func Init(d *gorm.DB) { db = d - var err error + err := AutoMigrate(new(model.Storage), new(model.User), new(model.Meta), new(model.SettingItem), new(model.SearchNode)) switch conf.Conf.Database.Type { case "sqlite3": - err = AutoMigrate(new(model.Storage), new(model.User), new(model.Meta), new(model.SettingItem), new(model.SearchNode)) case "mysql": - err = AutoMigrate(new(model.Storage), new(model.User), new(model.Meta), new(model.SettingItem), new(model.SearchNodeMySQL)) + if err == nil { + tableName := fmt.Sprintf("%ssearch_nodes", conf.Conf.Database.TablePrefix) + db.Exec(fmt.Sprintf("CREATE FULLTEXT INDEX idx_%s_name_fulltext ON %s(name);", tableName, tableName)) + } case "postgres": - err = AutoMigrate(new(model.Storage), new(model.User), new(model.Meta), new(model.SettingItem), new(model.SearchNode)) if err == nil { db.Exec("CREATE EXTENSION pg_trgm;") db.Exec("CREATE EXTENSION btree_gin;") diff --git a/internal/model/search.go b/internal/model/search.go index 697e0a93..ddcaee28 100644 --- a/internal/model/search.go +++ b/internal/model/search.go @@ -18,13 +18,6 @@ type SearchReq struct { PageReq } -type SearchNodeMySQL struct { - Parent string `json:"parent" gorm:"index"` - Name string `json:"name" gorm:"index:,class:FULLTEXT"` - IsDir bool `json:"is_dir"` - Size int64 `json:"size"` -} - type SearchNode struct { Parent string `json:"parent" gorm:"index"` Name string `json:"name"`