XPages在SSJS中创建全文索引
我有一个必须全文索引的数据库,因此我添加了下面的代码,以便在它未编制allready索引时创建一个数据库:XPages在SSJS中创建全文索引,xpages,full-text-indexing,Xpages,Full Text Indexing,我有一个必须全文索引的数据库,因此我添加了下面的代码,以便在它未编制allready索引时创建一个数据库: if (database.isFTIndexed()){ database.updateFTIndex(false) } else { var options:int = database.FTINDEX_ALL_BREAKS + database.FTINDEX_ATTACHED_FILES + database.FTINDEX_IMMEDIATE databas
if (database.isFTIndexed()){
database.updateFTIndex(false)
} else {
var options:int = database.FTINDEX_ALL_BREAKS + database.FTINDEX_ATTACHED_FILES + database.FTINDEX_IMMEDIATE
database.createFTIndex(options , true);
database.updateFTIndex(false);
}
sessionScope.put("ssSelectedView","vwWFSProfile")
当它运行时,我得到以下错误:
误差源
页面名称:/xpWFSAdmin.xsp
控件Id:按钮2
属性:onclick
例外情况
执行JavaScript操作表达式时出错
com.ibm.jscript.types.GeneratedWrapperObject$StaticField与com.ibm.jscript.types.FBSValue不兼容
表情
1:#{javascript:if(database.isFTIndexed()){
2:database.updateFTIndex(false)
3:}其他{
4:var选项:int=database.FTINDEX\u所有中断+database.FTINDEX\u附加文件+database.FTINDEX\u立即
5:database.createFTIndex(选项,true);
6:database.updateFTIndex(false);
7: }
8:sessionScope.put(“ssSelectedView”、“vwWFSProfile”)}
它在第4行阻塞,它不喜欢参数的求和。所以我注释掉第4行,将第5行改为database.createFTIndex(4,true)
然后我得到这个错误:
执行JavaScript操作表达式时出错
脚本解释器错误,第5行,第18列:[TypeError]调用方法NotesDatabase.createFTIndex(数字,布尔值)null时发生异常
JavaScript代码
1:if(database.isFTIndexed()){
2:database.updateFTIndex(false)
3:}其他{
4://var options:int=database.FTINDEX_ALL_break+database.FTINDEX_ATTACHED_FILES+database.FTINDEX_IMMEDIATE
5:database.createFTIndex(4,true);
6:database.updateFTIndex(false);
7: }
8:sessionScope.put(“ssSelectedView”、“vwWFSProfile”)
似乎无法让它工作。我可以进入数据库并手动创建索引,这样就不会出现权限问题。据我从帮助中了解到的情况,您不能将database.FTINDEX_IMMEDIATE用作createFTIndex()的参数,而只能用于setFTIndexFrequency() 因此,请取消使用database.FTINDEX_IMMEDIATE并执行以下操作:
var options:int = database.FTINDEX_ALL_BREAKS + database.FTINDEX_ATTACHED_FILES;
database.createFTIndex(options , true);
然后,可以如下方式调用setFTIndexFrequency():
database.setFTIndexFrequency(database.FTINDEX_IMMEDIATE);
据我从帮助中了解到的情况,您不能将database.FTINDEX_IMMEDIATE用作createFTIndex()的参数,而只能用于setFTIndexFrequency() 因此,请取消使用database.FTINDEX_IMMEDIATE并执行以下操作:
var options:int = database.FTINDEX_ALL_BREAKS + database.FTINDEX_ATTACHED_FILES;
database.createFTIndex(options , true);
然后,可以如下方式调用setFTIndexFrequency():
database.setFTIndexFrequency(database.FTINDEX_IMMEDIATE);
据我从帮助中了解到的情况,您不能将database.FTINDEX_IMMEDIATE用作createFTIndex()的参数,而只能用于setFTIndexFrequency() 因此,请取消使用database.FTINDEX_IMMEDIATE并执行以下操作:
var options:int = database.FTINDEX_ALL_BREAKS + database.FTINDEX_ATTACHED_FILES;
database.createFTIndex(options , true);
然后,可以如下方式调用setFTIndexFrequency():
database.setFTIndexFrequency(database.FTINDEX_IMMEDIATE);
据我从帮助中了解到的情况,您不能将database.FTINDEX_IMMEDIATE用作createFTIndex()的参数,而只能用于setFTIndexFrequency() 因此,请取消使用database.FTINDEX_IMMEDIATE并执行以下操作:
var options:int = database.FTINDEX_ALL_BREAKS + database.FTINDEX_ATTACHED_FILES;
database.createFTIndex(options , true);
然后,可以如下方式调用setFTIndexFrequency():
database.setFTIndexFrequency(database.FTINDEX_IMMEDIATE);
我会试试的。我有一段代码将ftIndexFrequency设置为Immediate,但我没有意识到它不能在选项中使用。现在我看到的帮助,我忽略了立即的问题,不能称之为一种选择。这不是很明显,但确实存在。谢谢,我说得有点过分了,真的很困惑。我创建了一个简单的XPage,只需一个按钮和以下代码:
if(database.isftindex()){database.updateFTIndex(false)}else{database.createFTIndex(0,false);database.setFTIndexFrequency(4);database.updateFTIndex(false);}
如果Irun在本地副本上运行正常。如果我尝试在服务器副本上运行它,我会得到一个500错误,并且没有创建索引。尝试使用database.FTINDEX\u所有中断,但始终失败,因此只添加了数字。我必须暂时远离这件事,我很沮丧。我会试试的。我有一段代码将ftIndexFrequency设置为Immediate,但我没有意识到它不能在选项中使用。现在我看到的帮助,我忽略了立即的问题,不能称之为一种选择。这不是很明显,但确实存在。谢谢,我说得有点过分了,真的很困惑。我创建了一个简单的XPage,只需一个按钮和以下代码:
if(database.isftindex()){database.updateFTIndex(false)}else{database.createFTIndex(0,false);database.setFTIndexFrequency(4);database.updateFTIndex(false);}
如果Irun在本地副本上运行正常。如果我尝试在服务器副本上运行它,我会得到一个500错误,并且没有创建索引。尝试使用database.FTINDEX\u所有中断,但始终失败,因此只添加了数字。我必须暂时远离这件事,我很沮丧。我会试试的。我有一段代码将ftIndexFrequency设置为Immediate,但我没有意识到它不能在选项中使用。现在我看到的帮助,我忽略了立即的问题,不能称之为一种选择。这不是很明显,但确实存在。谢谢,我说得有点过分了,真的很困惑。我创建了一个简单的XPage,只需一个按钮和以下代码:
if(database.isftindex()){database.updateFTIndex(false)}else{database.createFTIndex(0,false);database.setFTIndexFrequency(4);database.updateFTIndex(false);}
如果Irun在本地副本上运行正常。如果我尝试在服务器副本上运行它,我会得到一个500错误,并且没有创建索引。尝试使用database.FTINDEX\u所有中断,但始终失败,因此只添加了数字。我必须暂时远离这件事,我很沮丧。我会试试的。我有一段代码将ftIndexFrequency设置为Immediate,但我没有意识到它不能在选项中使用。现在我看到的帮助,我忽略了立即的问题,不能称之为一种选择。这不是很明显,但确实存在。谢谢,我说得有点过分了,真的很困惑。我创建了一个简单的XPage,只需一个按钮和以下代码:
if(database.isftindex()){database.updateFTIndex(false)}else{database.createFTIndex(0,false);database.setFTIndexFrequency(4);database.updateFTIndex(false);}
if Irun t