You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行LS Agent创建FT索引时遇大小超限问题的解决方案咨询

解决Lotus Notes LS Agent创建FT索引失败的问题

首先,我完全理解你的困境:原本依赖数据库自动更新FT索引的功能失效,于是写了个夜间Agent来删除重建索引,但遇到超过12MB的文档时创建失败,还把旧索引删掉了,导致数据库暂时失去全文检索能力。下面分几个部分给你解决方案:

1. 进一步扩展FTG_INDEX_LIMIT是可行的

你已经通过SET CONFIG FTG_INDEX_LIMIT=12582912把限制从6MB调到了12MB,这个参数可以继续调大,单位是字节。比如如果要设置成25MB,就用:

SET CONFIG FTG_INDEX_LIMIT=26214400

注意两点:

  • 修改后需要重启Domino服务器才能生效
  • 更大的索引会占用更多磁盘空间和服务器资源,所以要根据服务器的硬件配置合理调整,比如先测试25MB或30MB的效果,不要一次性调到过大(比如100MB以上)

2. 优化Agent的容错逻辑,避免“删了旧索引却建不出新的”尴尬

现在你的Agent是先删旧索引再创建新的,一旦创建失败,数据库就没索引可用了。建议改成先尝试创建新索引,成功后再替换旧索引,用FTINDEX_REPLACE参数可以实现这个逻辑,修改后的代码如下:

Option Public
Option Declare
Dim s As NotesSession
Dim ndb As NotesDatabase

Sub Initialize
    Set s = New NotesSession
    Set ndb = s.CurrentDatabase
    
    Dim indexExists As Boolean
    indexExists = ndb.IsFTIndexed
    
    Print("Starting FT index rebuild process")
    
    ' 先尝试创建新索引,用REPLACE参数会保留旧索引直到新索引创建成功
    On Error GoTo IndexCreationFailed
    Call ndb.CreateFTIndex(FTINDEX_ALL_BREAKS Or FTINDEX_REPLACE, True)
    Print("NEW INDEX CREATED SUCCESSFULLY")
    
    ' 如果旧索引存在,创建成功后再删除(可选,REPLACE会自动替换,但手动删除更彻底)
    If indexExists Then
        Call ndb.RemoveFTIndex()
        Print("OLD INDEX REMOVED SUCCESSFULLY")
    End If
    Exit Sub
    
IndexCreationFailed:
    Print("ERROR CREATING FT INDEX: " & Err.Description)
    ' 出错时旧索引仍然存在(因为用了REPLACE),不用恢复,直接提示即可
    If indexExists Then
        Print("FALLING BACK TO EXISTING FT INDEX")
    Else
        Print("NO EXISTING INDEX TO FALL BACK ON")
    End If
    Resume Next
End Sub

这样即使创建失败,旧索引还能正常使用,不会影响业务。

3. 从根源处理超大文档

如果调大索引限制后还是遇到问题,或者不想占用过多服务器资源,建议处理那些超过大小限制的文档:

  • 拆分超大文档:把大附件(比如PDF、压缩包)单独存成一个关联文档,主文档只保留链接和摘要信息,这样每个文档的大小都在索引限制内
  • 排除无需索引的超大文档:如果某些超大文档不需要被全文检索,可以在数据库的FT索引设置里添加过滤条件(比如按表单类型、字段值排除),避免这些文档拖慢索引创建流程

4. 排查自动更新索引失效的原因

既然原本的自动更新功能没生效,不如彻底解决这个问题,这样就不用依赖手动Agent了:

  • 检查数据库的FT索引设置:打开数据库属性→“全文索引”标签,确保“自动更新索引”已勾选,并且更新频率设置为“每日”
  • 检查Domino服务器的FTIndex任务:在服务器控制台输入show tasks,确认FTIndex任务在运行;如果没运行,输入load ftindex启动它
  • 检查服务器日志:查看Domino的日志文件(log.nsf),有没有FTIndex相关的错误,比如权限不足、磁盘空间不够等问题

内容的提问来源于stack exchange,提问作者J.Doe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 09:00:43