在我们的项目中,我们有一个LS代理,它应该删除并创建一个新的FT索引。我们还没有弄清楚为什么无法自动完成更新索引(尽管在我们的数据库选项中,这设置为每天更新索引)。因此我们决定使用非常简单的代理来制作大致相同的东西。代理看起来像这样,每天晚上运行:
Option Public
Option Declare
Dim s As NotesSession
Dim ndb As NotesDatabase
Sub Initialize
Set s = New NotesSession
Set ndb = s.CurrentDatabase
Print("BEFORE REMOVING INDEXES")
Call ndb.Removeftindex()
Print("INDEXES HAVE BEEN REMOVED SUCCESSFULLY")
Call ndb.createftindex(FTINDEX_ALL_BREAKS, true)
Print("INDEXES HAVE BEEN CREATED SUCCESSFULLY")
End Sub
在大多数情况下,它的效果非常好,但有时当有人创建超过12MB的文档时(我们真的不知道这是怎么可能的),代理无法创建索引。 (但最新的索引已被删除)。 错误信息是:
31.05.2018 03:01:25 Full Text Error (FTG): Exceeded max configured index
size while indexing document NT000BD992 in database index *path to FT file*.ft
我的问题是如何避免这个问题?我们已通过以下命令SET CONFIG FTG_INDEX_LIMIT=12582912
扩展了6MB的限制。我们可以进一步扩展它吗?一般来说,如何解决问题?提前谢谢。
答案 0 :(得分:0)
使用FTG_INDEX_LIMIT是一个避免此错误的选项,是的。但它会以两种方式影响服务器性能 - FTI更新过程将花费更多时间和更多内存
这个限制没有最大尺寸(理论上),但是!由于更新进程从公共堆中占用内存,因此可能导致“内存不足”和服务器崩溃。
您可以尝试从索引中排除附件 - 我不认为有人可以在一个文档中放置超过1mb的文本,但是用户可以附加一些大文本文件 - 这将产生您编写的错误。
附:是的,我同意斯科特 - 为什么你还需要这样的经纪人?常见的ft-indexing工作正常。