以编程方式更改 non-managed Solr 模式

Programatically change non-managed Solr schema

我一直在寻找一个工具来帮助加速和简化我们的 Solr 模式的编辑。调查后,似乎只有托管模式可以由 Schema API 编辑。不幸的是,我们的大多数 collections 使用 schema.xmlClassicIndexSchemaFactory

我们一直在做的是将 conf 文件保存在我们的 repo 中,然后当我们想要进行更改时,我们在 IDE 中手动编辑这些文件,然后 运行一个 shell 脚本,使用 zkcli.sh 对它们进行升级。环顾四周后,除了手动编辑以更改架构外,我看不到任何其他方式。

如果我们想以编程方式向我们的 schema.xml 添加一个字段,唯一的方法是使用一个脚本来编辑 XML 文件内容吗?

是的,除非您想使用托管模式,否则这是您的选择。

但是,托管架构功能正是您所询问的功能。它允许您通过 API 以编程方式更改架构,然后您可以提取当前配置并将其作为当前 schema.xml 添加到版本控制的存储库中。它还允许您编写迁移脚本以将字段添加到当前 运行 实例。

另请注意,您 可以 手动更改托管架构(通过编辑托管架构 xml 文件),但不推荐这样做,因为它需要您如果你决定这样做要小心(确保在你这样做时没有节点正在更改架构,确保每个节点都接受更改等)。