我在solr 6中有以下问题。
- managed-schema和schema.xml的主要区别是什么
- 使用managed-schema和schema.xml(classic)的优点和缺点是什么?
你能帮我理解一下solr6推荐的是什么吗?
问候,
Shaffic
在想过同样的事情之后,我做了一些调查,下面是我能想到的最好的。
看起来schema.xml
和managed-schema
是相同的,只是它们的名字在Solr6中改变了。
托管模式的优点
- 的好处是,您可以更安全地更改模式,而不必担心出现拼写错误或创建无效的模式。如果更改无效,API将拒绝您的更改。
- 模式API也处理所有的核心在模式改变后重新加载,所以你不需要。
托管模式的缺点
- 你不应该手工编辑托管模式,因此你应该通过API,这使得更难跟踪模式的当前状态(例如通过版本控制)
注意:模式API有一个端点,通过一个特殊的参数
curl http://localhost:8983/solr/<COLLECTION>/schema?wt=schema.xml
来获取托管模式
注意:如果您有一个schema.xml文件,并且在启动Solr时没有有一个managed-schema,并且在您的solrconfig.xml文件中没有指定schemaFactory, Solr将假定它是托管的,并从您的schema.xml文件创建一个managed_schema,此时您的schema.xml文件不再被读取。从此时开始将读取托管模式。对schema.xml的进一步修改将被忽略
来自Solr 6.6参考文档:
-
managed-schema是Solr默认使用的模式文件的名称以支持在运行时通过架构API进行架构更改,或者Schemaless Mode特性。您可以显式地配置托管模式特性可以使用另一个文件名,但是文件内容仍由Solr自动更新
-
schema.xml是模式文件的传统名称由使用ClassicIndexSchemaFactory的用户手工编辑
如果您想使用schema.xml而不是通过模式api作为managed-schema手动编辑模式(虽然不推荐),您可以在solrconfig.xml中设置schemaFactory配置:
要创建schemaFactory类& lt; = " ClassicIndexSchemaFactory "/祝辞
快速阅读这个链接,让你所有的问题都得到清楚的回答。