From d87e1de8ceb19df819b7acaa89bdfa6418a2d4e7 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Fri, 15 Jul 2022 22:48:32 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20=E5=90=8C=E6=AD=A5=E5=90=8E=E9=9C=80?= =?UTF-8?q?=E8=A6=81=E9=87=8D=E5=BB=BA=E7=B4=A2=E5=BC=95=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/model/sync.go | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/kernel/model/sync.go b/kernel/model/sync.go index bdf0d48b6..3327a7552 100644 --- a/kernel/model/sync.go +++ b/kernel/model/sync.go @@ -122,8 +122,28 @@ func SyncData(boot, exit, byHand bool) { // incReindex 增量重建索引。 func incReindex(upserts, removes []string) { - needPushUpsertProgress := 32 < len(upserts) needPushRemoveProgress := 32 < len(removes) + needPushUpsertProgress := 32 < len(upserts) + + // 先执行 remove,否则移动文档时 upsert 会被忽略,导致未被索引 + + for _, removeFile := range removes { + if !strings.HasSuffix(removeFile, ".sy") { + continue + } + + id := strings.TrimSuffix(filepath.Base(removeFile), ".sy") + block := treenode.GetBlockTree(id) + if nil != block { + treenode.RemoveBlockTreesByRootID(block.RootID) + sql.RemoveTreeQueue(block.BoxID, block.RootID) + msg := fmt.Sprintf("Sync remove tree [%s]", block.RootID) + util.PushStatusBar(msg) + if needPushRemoveProgress { + util.PushEndlessProgress(msg) + } + } + } for _, upsertFile := range upserts { if !strings.HasSuffix(upsertFile, ".sy") { @@ -154,23 +174,6 @@ func incReindex(upserts, removes []string) { util.PushEndlessProgress(msg) } } - for _, removeFile := range removes { - if !strings.HasSuffix(removeFile, ".sy") { - continue - } - - id := strings.TrimSuffix(filepath.Base(removeFile), ".sy") - block := treenode.GetBlockTree(id) - if nil != block { - treenode.RemoveBlockTreesByRootID(block.RootID) - sql.RemoveTreeQueue(block.BoxID, block.RootID) - msg := fmt.Sprintf("Sync remove tree [%s]", block.RootID) - util.PushStatusBar(msg) - if needPushRemoveProgress { - util.PushEndlessProgress(msg) - } - } - } if needPushRemoveProgress || needPushUpsertProgress { util.PushClearProgress()