2017-03-17 45 views
0

在一個需求中,我需要查詢剛創建的文檔。如果我使用lucene搜索,則需要幾秒鐘才能完成索引,並且可能不會出現在搜索結果中。搜索剛剛創建的節點Alfresco JAVA

查詢應該從某個露天網頁腳本或每5秒運行一次的調度程序執行。

現在我正在通過使用NodeService和通過名稱查找孩子,這不是有效的方法。我正在使用JAVA API。

有沒有其他方法可以做到這一點?

謝謝

+1

爲什麼在創建新節點時不使用規則或行爲來調用代碼?這將是「更Alfresco」的方式 – Gagravarr

回答

2

你沒有提到你使用的是什麼版本的Alfresco的,但它看起來像你正在使用Solr的。

如果您剛剛創建了該文檔,建議您保留對該文檔的引用,以便您不必再次搜索它。

但是,有時不可能有文檔參考。例如,客戶端1不知道客戶端2剛剛創建了一個文檔。如果您使用的是Alfresco版本4.2或更高版本,則可以啓用Transactional Metadata Queries (TMQ),它允許您對數據庫執行搜索,因此不存在Solr延遲。請回顧整個部分,因爲你需要符合四個條件使用TMQ:

  1. Enable the TMQ patch,這樣的節點性能表在數據庫中保存索引。
  2. 儘可能使用數據庫進行搜索(TRANSACTION_IF_POSSIBLE)。
  3. 請確保您使用正確的query language(CMIS,AFTS,db-lucene等)
  4. 您的查詢必須是supported by TMQ
+0

感謝它的幫助! – Sam