Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
系统中不同帐户的Solr_Solr - Fatal编程技术网

系统中不同帐户的Solr

系统中不同帐户的Solr,solr,Solr,我正在开发一个SaaS,每个帐户都有一个数据库,表基本相同。单独索引所有数据库的最佳方法是什么?我在考虑为同一服务器中的每个数据库设置不同的solr实例(不同的端口),但在服务器上可能很难。所以,我对下一步该做什么充满了疯狂的怀疑。我在solr文档中没有找到任何有用的想法。你们能帮忙吗。提前感谢。如果您将来自所有租户的所有数据存储在一个集合中,那么一开始会很容易,因为您可能会对架构进行多次更改,如果您为所有客户进行一次更改,则会更容易。 在这种情况下,不利的一点是,您将有大量不相关的数据分组在一

我正在开发一个SaaS,每个帐户都有一个数据库,表基本相同。单独索引所有数据库的最佳方法是什么?我在考虑为同一服务器中的每个数据库设置不同的solr实例(不同的端口),但在服务器上可能很难。所以,我对下一步该做什么充满了疯狂的怀疑。我在solr文档中没有找到任何有用的想法。你们能帮忙吗。提前感谢。

如果您将来自所有租户的所有数据存储在一个集合中,那么一开始会很容易,因为您可能会对架构进行多次更改,如果您为所有客户进行一次更改,则会更容易。 在这种情况下,不利的一点是,您将有大量不相关的数据分组在一起,并且您必须始终对租户(客户机)id使用筛选查询

首先,如果为同一Solr服务器上的每个租户创建一个集合,会怎么样?通过这种方式,您不必混合租户的数据,就可以实现基本需要的功能。 在这种情况下,正如关系数据库实例一样,您必须保持模式更改同步

对于关系数据库,可以使用诸如或之类的工具来对应用于每个租户数据库的更改进行版本设置

对于Solr,没有这样的工具,但您可以通过编程方式应用模式更改。如果您必须执行无法通过Schema API完成的非常详细的更改,您可以使用每个集合的更新版本替换Schema.xml文件,然后重新启动solr服务器


您需要记住的是向后兼容性。无论何时向任何数据库(关系数据库或Solr)添加一些更改,都需要考虑到旧代码必须与在关系数据库/Solr架构结构上执行的最新更新一起使用。

如果将所有租户的所有数据存储在一个集合中,一开始会很容易,因为您可能会对您的模式进行几次更改,如果您对所有客户进行一次更改,则会更容易。 在这种情况下,不利的一点是,您将有大量不相关的数据分组在一起,并且您必须始终对租户(客户机)id使用筛选查询

首先,如果为同一Solr服务器上的每个租户创建一个集合,会怎么样?通过这种方式,您不必混合租户的数据,就可以实现基本需要的功能。 在这种情况下,正如关系数据库实例一样,您必须保持模式更改同步

对于关系数据库,可以使用诸如或之类的工具来对应用于每个租户数据库的更改进行版本设置

对于Solr,没有这样的工具,但您可以通过编程方式应用模式更改。如果您必须执行无法通过Schema API完成的非常详细的更改,您可以使用每个集合的更新版本替换Schema.xml文件,然后重新启动solr服务器


您需要记住的是向后兼容性。每当您向任何数据库(relational DB或Solr)添加一些更改时,您都需要考虑到旧代码必须与您在relational database/Solr架构结构上执行的最新更新一起工作。

我认为每个租户都有一个集合确实是最好的方法。我还要看看flyway和liquidbase。非常感谢@marius_neo的帮助。我认为对每个租户进行收集确实是最好的方法。我还要看看flyway和liquidbase。非常感谢@marius_neo的帮助。