XPages在SSJS中创建全文索引

时间:2013-12-10 19:48:54

标签: xpages full-text-indexing

我有一个必须全文索引的数据库,所以我添加了下面的代码,如果它尚未全部编入索引,则创建一个:

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”)

似乎无法让它发挥作用。我可以进入数据库并手动创建索引,因此它不是权利问题。

1 个答案:

答案 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);