通过GATE实现多租户

时间:2014-10-30 04:37:21

标签: multi-tenant gate

我在我的一个应用程序中使用GATE,我几乎没有与多租户相关的查询。我的要求如下:

  • 我设置了关键字,具体针对每个用户并依赖于 哪个用户已登录,我需要初始化地名词典 适用的关键字集。
  • 在给定时间可能有多个用户登录我的 应用程序,我想确保多租户 方法效率不高。
  • 我不想在.lst中存储每个用户的关键字 文件,但存储在DB(mongo)上,只注入 运行时。

我在网上搜索了一些样本,虽然我发现了一些关于使用Processing Resource的想法,但我不知道如何影响性能。

非常感谢您的帮助。

提前致谢,

Sajith

1 个答案:

答案 0 :(得分:1)

对于GATE地名词典来说,这是一个有趣的用例。

我相信您应该做的一件事是在您创建文档时添加用户ID作为功能。这样,您以后就可以在处理资源中进行MongoDB查询。

当您处理文档时,您有以下几种选择:

  1. 创建一个自定义PR,调用MongoDB并复制DefaultGazetteer代码,但覆盖" init"方法(或继承或包装它,如果可能的话,还没有详细研究)。您应该提供关键字列表,而不是默认的init方法,然后设置所需的字段并调用execute()。

  2. 如果您没有太多关键字,请创建一个调用MongoDB的自定义PR(或groovy脚本PR)并执行一些简单的正则表达式搜索,如the one in this thread。 他们还在评论中建议stringsearch库。然后只需使用开始和结束索引就可以自己创建Lookup注释。

  3. 你说你不想要那个但是,默认和Hash地名词典都可以处理几百万字。虽然,你应该小心,因为如果你有太多的注释,门文档可能会占用大量内存 - 在你的情况下查找所有用户关键字。

  4. 希望这有帮助。