XPages在SSJS中创建全文索引

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

我有一个必须全文索引的数据库,因此我添加了下面的代码,以便在它未编制allready索引时创建一个数据库:

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