是否可以在 Solr 架构中的某处存储自定义版本号,以便客户端可以检索它以验证它是否连接到兼容的 Solr 实例?
当我将应用程序的新版本部署到 QA 或生产时,我需要确保我的应用程序连接到的所有数据源(Solr、RDBMS 等)都已正确更新/迁移。所以我想在启动时进行一些验证。使用数据库很容易(例如将当前模式版本存储在 VERSION 表中),但在哪里存储 Solr 模式的版本信息就不太明显了。
是否可以在 Solr 架构中的某处存储自定义版本号,以便客户端可以检索它以验证它是否连接到兼容的 Solr 实例?
当我将应用程序的新版本部署到 QA 或生产时,我需要确保我的应用程序连接到的所有数据源(Solr、RDBMS 等)都已正确更新/迁移。所以我想在启动时进行一些验证。使用数据库很容易(例如将当前模式版本存储在 VERSION 表中),但在哪里存储 Solr 模式的版本信息就不太明显了。
SystemInfoHandler将提供版本以及有关 Solr 实例的其他信息。在更高版本的 Solr(3.x 和 4.x)中,这已作为管理 requestHandler 的一部分启用。
您可以通过http://localhost:8983/solr/admin/system
随 Solr 分发的示例站点访问信息。为您的 Solr 配置相应地修改 url。
注意:如果您运行的是旧版本的 Solr,可以通过在 solrconfig.xml 文件中添加以下行来启用此功能。
<requestHandler name="/admin/system" class="solr.admin.SystemInfoHandler" />
更新: 对于知道schema何时改变的特定场景(例如schema的版本),可以通过每次修改schema文件时更新根节点的name属性来完成。然后,此名称值将在 SystemInfoHandler 响应中可用。