From 4a8a9e37155ace4b89efc1e0208710248b345c03 Mon Sep 17 00:00:00 2001 From: Pinenutn <1101839859@qq.com> Date: Sat, 11 Jan 2025 23:27:22 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=AD=A3=E5=B8=AE=E5=8A=A9?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E6=97=A0=E6=B3=95=E5=8A=A0=E8=BD=BD=E6=8C=87?= =?UTF-8?q?=E4=BB=A4=E7=9B=B8=E5=85=B3=E5=B8=AE=E5=8A=A9=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=8C=E5=B9=B6=E8=A1=A5=E5=85=85?= =?UTF-8?q?=E9=83=A8=E5=88=86=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit 3afa24a3acc31ad01f443c092ced3685e1b3c4f4) --- dice/dice_help.go | 18 +++++++++++++++--- dice/docengine/bleve.go | 4 +--- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/dice/dice_help.go b/dice/dice_help.go index a26378b0..e0889670 100644 --- a/dice/dice_help.go +++ b/dice/dice_help.go @@ -219,7 +219,13 @@ func (m *HelpManager) Load() { }) m.HelpDocTree = append(m.HelpDocTree, &child) } - _ = m.AddItemApply(true) + // TODO: Hack mode。此处是故意为之,因为帮助文档还包含对于指令的帮助部分,他们在帮助文档之后加载。如果在此处设置true,后续将无法加载 + // TODO: 或许可以考虑提供一个函数专门加载指令,或者不再提供AddItemApply函数 end=true,直接循环使用同一个batch。 + // TODO: 不修改下层逻辑的原因是可以以后开发复用我封装的模块。 + err = m.AddItemApply(false) + if err != nil { + log.Errorf("unable to add item apply to search engine: %v", err) + } m.CurID = m.searchEngine.GetTotalID() elapsed := time.Since(start) // 计算执行时间 log.Infof("帮助文档加载完毕,共耗费时间: %s 共计加载条目:%d\n", elapsed, m.CurID) @@ -418,12 +424,15 @@ func (dm *DiceManager) AddHelpWithDice(dice *Dice) { if content == "" { content = v.ShortHelp } - _ = m.AddItem(docengine.HelpTextItem{ + err := m.AddItem(docengine.HelpTextItem{ Group: HelpBuiltinGroup, Title: k, Content: content, PackageName: packageName, }) + if err != nil { + log.Errorf("AddHelpWithDice AddItem err:%v", err) + } } } @@ -437,7 +446,10 @@ func (dm *DiceManager) AddHelpWithDice(dice *Dice) { }) addCmdMap(i.Name, i.CmdMap) } - _ = m.AddItemApply(false) + err := m.AddItemApply(false) + if err != nil { + log.Errorf("AddHelpWithDice AddItemApply err:%v", err) + } } func (m *HelpManager) AddItem(item docengine.HelpTextItem) error { diff --git a/dice/docengine/bleve.go b/dice/docengine/bleve.go index 4692989d..492f9f0c 100644 --- a/dice/docengine/bleve.go +++ b/dice/docengine/bleve.go @@ -120,7 +120,6 @@ func (d *BleveSearchEngine) AddItem(item HelpTextItem) (string, error) { // AddItemApply 这里认为是真正执行插入文档的逻辑 // 由于现在已经将执行函数改为了可按文件执行,所以可以按文件进行Apply,这应当不会有太大的量级。 // end代表是否是最后一次执行,一般用在所有的数据都处理完之后,关闭逻辑的时候使用,如bleve batch重复利用后最后销毁 -// TODO: 似乎很奇怪,这家伙貌似不会回收内存的吗? func (d *BleveSearchEngine) AddItemApply(end bool) error { if d.batch != nil { // 执行batch @@ -130,11 +129,10 @@ func (d *BleveSearchEngine) AddItemApply(end bool) error { } // 如果是最后一批 if end { - // 销毁batch d.batch.Reset() d.batch = nil } else { - // 否则重置batch + // 否则仅重置batch d.batch.Reset() } return err