2013-12-10 59 views
0

全文索引我有一個DB必須爲全文索引,所以我加了下面的代碼來創建一個如果沒有媒體鏈接索引:的XPages創建SSJS

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 $ StaticFiel d與com.ibm.jscript.types.FBSValue

表達

1不相容:#{的javascript:如果(database.isFTIndexed()){ 2:database.updateFTIndex(假) 3:}否則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,真) 後來我得到這個錯誤:

錯誤而執行JavaScript動作表情 腳本解釋器錯誤,行= 5,列= 18: [類型錯誤]發生異常調用方法NotesDatabase.createFTIndex(數字,布爾值)空

JavaScript代碼

1:如果(database.isFTIndexed()){ 2:database.updateFTIndex(假) 3:}其他{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」)

似乎無法使其正常工作。我可以進入數據庫並手動創建索引,因此它不是一個供應問題。

回答

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); 
+0

會嘗試。我有一段代碼,我將FTIndexFrequency設置爲Immediate,但沒有意識到它不能在選項中使用。現在我看看我忽視的幫助,不能將立即問題作爲一種選擇。這不是很明顯,但它在那裏。謝謝 –

+0

我已經進一步混亂了。我創建了一個簡單的XPage只有一個按鈕和這個代碼:
if(database。isFINIndexed()){ \t database.updateFTIndex(false) } else { \t database.createFTIndex(0,false); \t database.setFTIndexFrequency(4); \t database.updateFTIndex(false); }
如果Irun在本地副本副本上工作正常。如果我嘗試在服務器副本上運行它,則會出現500錯誤,並且不會創建索引。嘗試使用database.FTINDEX_ALL_BREAKS並且它始終失敗,所以只需添加數字即可。我必須離開這一段時間,我非常沮喪。 –