用于多租户支持的 SOLR QueryElevationComponent
SOLR QueryElevationComponent for Multi-tenant Support
新手问题,请多多关照。 :)
基本上我们需要为多租户 SOLR 环境实施编辑提升,其中来自用户的预定义查询总是会在结果的顶部带来一组特定的文档。
我们面临的一些挑战包括:
给定一个 elevate.xml,我们无法指示某个查询文本是针对特定租户的。尽管索引中存在 tenantId,但 elevate.xml 文件中没有指示该 ID。我们考虑过将 ID 连接到查询文本(即 ipod_tenantID1),但我认为连接在主查询中无法追踪 'q'.
我们需要让 elevate.xml 的更新与其他活跃租户无缝衔接。更新 elevate.xml 需要重新启动 SOLR 服务器是否正确?如果是,是否有解决方法?
所以您使用的是单个 core/collection 并且多租户是由 fq=customer_id:A
强制执行的,对吗?
那么,通过每个客户一个集合来实施多租户怎么样?这样每个人都可以有自己的 conf(包括提升的东西)。
关于你的第二个问题,我没有检查,但可能重新加载就足够了。如果您采用建议的解决方案,当您处理不同的集合时,其他租户不会因重新加载而中断。
新手问题,请多多关照。 :)
基本上我们需要为多租户 SOLR 环境实施编辑提升,其中来自用户的预定义查询总是会在结果的顶部带来一组特定的文档。
我们面临的一些挑战包括:
给定一个 elevate.xml,我们无法指示某个查询文本是针对特定租户的。尽管索引中存在 tenantId,但 elevate.xml 文件中没有指示该 ID。我们考虑过将 ID 连接到查询文本(即 ipod_tenantID1),但我认为连接在主查询中无法追踪 'q'.
我们需要让 elevate.xml 的更新与其他活跃租户无缝衔接。更新 elevate.xml 需要重新启动 SOLR 服务器是否正确?如果是,是否有解决方法?
所以您使用的是单个 core/collection 并且多租户是由 fq=customer_id:A
强制执行的,对吗?
那么,通过每个客户一个集合来实施多租户怎么样?这样每个人都可以有自己的 conf(包括提升的东西)。
关于你的第二个问题,我没有检查,但可能重新加载就足够了。如果您采用建议的解决方案,当您处理不同的集合时,其他租户不会因重新加载而中断。