managed-schema 和 schema.xml 有啥区别
Posted
技术标签:
【中文标题】managed-schema 和 schema.xml 有啥区别【英文标题】:What is the difference between managed-schema and schema.xmlmanaged-schema 和 schema.xml 有什么区别 【发布时间】:2017-02-13 10:02:16 【问题描述】:我在 solr 6 中有以下问题。
-
managed-schema 和 schema.xml 的主要区别是什么
使用 managed-schema 和 schema.xml(classic) 有哪些优点和缺点。
您能否帮助我理解 solr6 中的推荐内容?
问候,
沙菲克
【问题讨论】:
他们为 solr 6 遵循的命名约定。命名改为托管模式而不是模式。目的是一样的。 【参考方案1】:我在想同样的事情之后做了一些调查,这是我能想到的最好的。
schema.xml
和managed-schema
似乎是相同的,只是他们在 Solr6 中更改了名称。
托管模式的好处
好处是您可以更安全地更改架构,而不必担心出现拼写错误或创建无效架构。如果某些内容无效,API 会拒绝您的更改。 架构 API 还可以处理架构更改后内核的所有重新加载,因此您不必这样做。托管模式的缺点
您不应该对托管模式进行手动编辑,因此您应该通过 API,这使得跟踪模式的当前状态变得更加困难(例如,通过版本控制)注意:Schema API 有一个端点来获取带有特殊参数
curl http://localhost:8983/solr/<COLLECTION>/schema?wt=schema.xml
的托管模式
注意:如果您有一个 schema.xml 文件并且在启动 Solr 时没有有一个托管模式并且没有在您的 solrconfig.xml 文件中指定 schemaFactory,Solr 将假定它是托管的,并从您的 schema.xml 文件创建一个 managed_schema,此时您的 schema.xml 文件不再被读取。托管模式将从此时开始读取。对 schema.xml 的进一步更改将被忽略。
【讨论】:
【参考方案2】:来自 Solr 6.6 参考 documentation:
managed-schema 是 Solr 默认使用的架构文件的名称 支持在运行时通过Schema API 进行架构更改,或者 无模式模式功能。您可以显式配置托管 如果您选择使用替代文件名的架构功能,但 Solr 仍会自动更新文件的内容。
schema.xml 是模式文件的传统名称,可以 由使用 ClassicIndexSchemaFactory 的用户手动编辑。
如果您想使用 schema.xml 手动编辑您的架构(尽管不推荐),而不是通过架构 api 作为托管架构,您可以通过在 solrconfig.xml 中设置 schemaFactory 配置来实现:
快速阅读此link,以清楚地回答您的所有问题。
【讨论】:
以上是关于managed-schema 和 schema.xml 有啥区别的主要内容,如果未能解决你的问题,请参考以下文章
Solr 6.1学习笔记-- 配置文件 managed-schema (schema.xml)
Solr 6.7学习笔记(02)-- 配置文件 managed-schema (schema.xml) - filter