Solr在多租户环境中

时间:2010-03-24 16:24:49

标签: solr

我正在考虑在多租户应用程序中使用Solr,我想知道是否有任何最佳做法或事项需要注意?

特别是一个问题是每个租户都有一个Solr Core是有意义的。有大量的Solr核心有什么问题吗? 我正在考虑为每个租户使用核心,因为我可以单独保护每个核心。

由于

3 个答案:

答案 0 :(得分:3)

Solr Core对于多租户来说是一个很好的想法,特别是因为它们可以在运行时进行管理(因此不需要重启服务器)。对于拥有多个Solr内核,您不应该遇到太多性能问题,但要注意一个内核的性能会受到其他内核工作的影响 - 它们可能会共享同一个磁盘。

我可以看到为什么你可能想要直接API访问 - 例如,如果每个'用户'是Drupal站点或类似的,对于共享托管类型环境。最好的办法是保护不同的网址,例如如果您有/ solr / admin / cores,/ solr / client1用于客户端核心,而/ solr / client2用于另一个,您将有三种不同的身份验证,一种用于管理员,另一种用于您的租户。这是在容器(Jetty,Tomcat等)中完成的,请查看一般的Solr Security页面:http://wiki.apache.org/solr/SolrSecurity - 您将要以相同的方式为每个路径设置基本访问登录。

答案 1 :(得分:0)

对于每个租户,您不再使用单独的table in a database,而是为每个租户使用solr core

如果您认为像数据库表这样的核心并以一种每个核心代表问题空间中的对象的方式组织您的项目,那么您可以更好地利用solr。

当您需要索引文本然后快速搜索时,solr会亮相。如果你不这样做,你也可以使用关系数据库。

另外,关于为每个租户保护solr的问题,我希望您不建议允许您的登录用户直接访问solr输出?您的用户不应该能够直接访问您的solr实例。

祝你好运。

答案 2 :(得分:0)

没关系..您无法正确使用cache(inbuild)并满足您的要求。您可以添加权限位,您可以在其中更改查询组件。它应该根据许可正常工作。还有一个按位操作可用于此。根据您的需要使用它。