2012-08-29 38 views
0

我正在構建自定義控件來執行查找並提供數據庫中多個項目狀態的摘要。有20種不同的狀態,爲了確定每個狀態的編號,我正在做一個NotesDatabase.search來計算每個狀態。在一個自定義控件中執行多個查找的高效方式

這很好,當只有兩個狀態來檢查,但企業現在希望所有人都顯示。 :)

我很關心搜索時間,並希望以最有效的方式進行搜索。

事情我必須考慮到:

  • 文檔是定期更新的,所以我真的不能有一個代理,做Calcs(計算)和自定義控制運行的靜態值的查詢。這意味着數據是舊的。
  • 結果取決於用戶登錄,根據他們的登錄ID進行計數,因此我無法真正確定每個人的獨立觀點。

有沒有人有一個乾淨的建議解決方案?

我即將開始測試20次搜索,並將用這些結果更新此內容,但我預計它會非常慢。

一個不是20的

回答

0

搜索你實際上可能與ONE Ajax調用更好。創建一個按照您的狀態分類的視圖,並將其摺疊。然後進行一個Ajax調用...statusview?ReadViewEntries&Outputformat=JSON&count=100。這將爲您提供具有childcount屬性的100個狀態摘要條目。

這樣可以嗎?

+0

謝謝 - 我現在正沿着這條路走下去,或者至少有一個變種。實際上,我只是想使用std視圖,按類別名稱進行過濾,只顯示狀態和數量。然後調整視圖的顯示,使其不顯示類別爲可展開的,並刪除細節線。如果這不起作用,那麼我會回到上面建議的路徑。 – alt

+0

隨時接受答案:-) – stwissel

1

另一種選擇:而不是@DBLookup你進入視圖,並使用導航器端到端運行。這非常快,應該比20倍的搜索更快。

當然,您可以更新QuerySave事件中的統計並將其寫入到內存配置文件中特定的用戶。

因此,在您的QuerySave中,您將看到用戶在ApplicationBean中加載的內容並進行更新。如果用戶新登錄,那麼數據庫中的搜索將完成到應用程序bean中。當會話過期(Session偵聽器)時,ApplicationBean中的條目被清除。

0

是否可以添加20個狀態文檔,並在滿足某些條件時更新這些文檔中的一個或多個文檔?每次更新文檔時,代理都會運行以符合這些條件,以便更新狀態。

如果每天有很多更新,它不是很有效。

相關問題