【发布时间】:2017-08-14 07:25:52
【问题描述】:
我需要在几个 solr 服务器上将架构从 .xml 更改为托管架构,不幸的是,它必须使用某种 groovy 脚本(可以执行 curl)来完成,该脚本在部署时会自动运行一次。这是因为我们的部署策略无法修改服务器上的文件。一位同事告诉我这是可能的,但我已经阅读了有关托管架构 API 的信息,现在我想知道这是否可能,因为没有提到任何关于此类功能的内容。
【问题讨论】:
我需要在几个 solr 服务器上将架构从 .xml 更改为托管架构,不幸的是,它必须使用某种 groovy 脚本(可以执行 curl)来完成,该脚本在部署时会自动运行一次。这是因为我们的部署策略无法修改服务器上的文件。一位同事告诉我这是可能的,但我已经阅读了有关托管架构 API 的信息,现在我想知道这是否可能,因为没有提到任何关于此类功能的内容。
【问题讨论】:
在经典方案和托管方案之间进行更改是 Solr 实例的配置文件中的一项设置,据我所知,您无法通过 Web 界面进行更改。
见Schema Factory Definition in SolrConfig:
当 a 没有在 solrconfig.xml 文件中显式声明时,Solr 会隐式使用 ManagedIndexSchemaFactory,默认情况下它是“可变的”并将架构信息保存在托管架构文件中。
<!-- An example of Solr's implicit default behavior if no
no schemaFactory is explicitly defined.
-->
<schemaFactory class="ManagedIndexSchemaFactory">
<bool name="mutable">true</bool>
<str name="managedSchemaResourceName">managed-schema</str>
</schemaFactory>
这假设您使用的是最新版本的 Solr,它实际上提供了对 Schema API 的支持并使用托管模式。
如果您的服务器配置为使用托管架构,则可以通过 API 和 cURL 或其他 HTTP 库来添加字段和更改架构定义。
【讨论】: