我有一个必须全文索引的数据库,所以我添加了下面的代码,如果它尚未全部编入索引,则创建一个:
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:button2 财产:onclick
异常 执行JavaScript动作表达式时出错 com.ibm.jscript.types.GeneratedWrapperObject $ StaticField与com.ibm.jscript.types.FBSValue不兼容
表达
1:#{javascript:if(database.isFTIndexed()){ 2:database.updateFTIndex(false) 3:} else { 4:var options:int = database.FTINDEX_ALL_BREAKS + database.FTINDEX_ATTACHED_FILES + database.FTINDEX_IMMEDIATE 5:database.createFTIndex(options,true); 6:database.updateFTIndex(false); 7:} 8:sessionScope.put(“ssSelectedView”,“vwWFSProfile”)}
它在第4行窒息,它不喜欢参数的总和。所以我注释掉第4行并更改第5行来读取database.createFTIndex(4,true) 然后我收到这个错误:
执行JavaScript动作表达式时出错 脚本解释器错误,line = 5,col = 18:[TypeError]发生异常调用方法NotesDatabase.createFTIndex(number,boolean)null
JavaScript代码
1:if(database.isFTIndexed()){ 2:database.updateFTIndex(false) 3:} else { 4:// var options:int = database.FTINDEX_ALL_BREAKS + database.FTINDEX_ATTACHED_FILES + database.FTINDEX_IMMEDIATE 5:database.createFTIndex(4,true); 6:database.updateFTIndex(false); 7:} 8:sessionScope.put(“ssSelectedView”,“vwWFSProfile”)
似乎无法让它发挥作用。我可以进入数据库并手动创建索引,因此它不是权利问题。
答案 0 :(得分:3)
据我所知,你不能将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);