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.xmlmanaged-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:

ma​​naged-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

solr实战-

solr相关配置(搜索novel案例)

全文搜索引擎solr

配置smartcn分词器