2014-10-30 60 views
0

我在我的一個應用程序中使用了GATE,並且我有幾個與多租戶相關的查詢。我的要求如下。通過GATE實現多租戶

  • 我的關鍵字設定,針對每個用戶,並根據所用戶登錄在 ,我需要初始化地名與 適用的關鍵字。
  • 在給定時間可能會有多個用戶登錄我的 應用程序,我想確保多租戶方法不會低效。
  • 我不想將每個用戶的關鍵字存儲在.lst 文件中,但將其存儲在數據庫(mongo)中,並僅在 運行時注入。

我在網上搜索了幾個樣本,雖然我發現了一些關於處理資源的想法,但我不知道性能如何受到影響。

非常感謝您的幫助。

由於提前,

Sajith

回答

1

這是一個有趣的用例的GATE地名。

我相信你應該做的一件事就是在創建文檔時添加用戶ID作爲功能。這樣你就可以在稍後的處理資源中創建你的MongoDB查詢。

當你處理文檔,你有幾種選擇:

  1. 創建它調用的MongoDB和複製DefaultGazetteer代碼,但與覆蓋「初始化」方法的自定義PR(或繼承或包裹它,如果可能的話,還沒有詳細研究)。您應該提供您的關鍵字列表,而不是默認的init方法,然後設置所需的字段並調用execute()。

  2. 如果您沒有太多關鍵字,請創建一個自定義PR(或常規腳本PR),它調用MongoDB並執行一些簡單的正則表達式搜索,如the one in this thread。 他們還建議在評論中的stringsearch庫。然後,只需使用開始和結束索引來自行創建查找註釋。

  3. 你說你不想要但仍然可以通過默認和哈希地名詞典來處理幾百萬字。儘管如此,您應該小心,因爲如果您的註釋過多,門文檔可能會佔用大量內存 - 在您的案例中,查找所有用戶關鍵字。

希望這會有所幫助。