以编程方式更改 non-managed Solr 模式
Programatically change non-managed Solr schema
我一直在寻找一个工具来帮助加速和简化我们的 Solr 模式的编辑。调查后,似乎只有托管模式可以由 Schema API 编辑。不幸的是,我们的大多数 collections 使用 schema.xml
和 ClassicIndexSchemaFactory
。
我们一直在做的是将 conf 文件保存在我们的 repo 中,然后当我们想要进行更改时,我们在 IDE 中手动编辑这些文件,然后 运行一个 shell 脚本,使用 zkcli.sh
对它们进行升级。环顾四周后,除了手动编辑以更改架构外,我看不到任何其他方式。
如果我们想以编程方式向我们的 schema.xml
添加一个字段,唯一的方法是使用一个脚本来编辑 XML 文件内容吗?
是的,除非您想使用托管模式,否则这是您的选择。
但是,托管架构功能正是您所询问的功能。它允许您通过 API 以编程方式更改架构,然后您可以提取当前配置并将其作为当前 schema.xml 添加到版本控制的存储库中。它还允许您编写迁移脚本以将字段添加到当前 运行 实例。
另请注意,您 可以 手动更改托管架构(通过编辑托管架构 xml 文件),但不推荐这样做,因为它需要您如果你决定这样做要小心(确保在你这样做时没有节点正在更改架构,确保每个节点都接受更改等)。
我一直在寻找一个工具来帮助加速和简化我们的 Solr 模式的编辑。调查后,似乎只有托管模式可以由 Schema API 编辑。不幸的是,我们的大多数 collections 使用 schema.xml
和 ClassicIndexSchemaFactory
。
我们一直在做的是将 conf 文件保存在我们的 repo 中,然后当我们想要进行更改时,我们在 IDE 中手动编辑这些文件,然后 运行一个 shell 脚本,使用 zkcli.sh
对它们进行升级。环顾四周后,除了手动编辑以更改架构外,我看不到任何其他方式。
如果我们想以编程方式向我们的 schema.xml
添加一个字段,唯一的方法是使用一个脚本来编辑 XML 文件内容吗?
是的,除非您想使用托管模式,否则这是您的选择。
但是,托管架构功能正是您所询问的功能。它允许您通过 API 以编程方式更改架构,然后您可以提取当前配置并将其作为当前 schema.xml 添加到版本控制的存储库中。它还允许您编写迁移脚本以将字段添加到当前 运行 实例。
另请注意,您 可以 手动更改托管架构(通过编辑托管架构 xml 文件),但不推荐这样做,因为它需要您如果你决定这样做要小心(确保在你这样做时没有节点正在更改架构,确保每个节点都接受更改等)。