managed-schema和schema.xml之间有什么区别

时间:2016-10-05 05:09:07

标签: solr schema managed

我在solr 6中有以下问题。

  1. managed-schema和schema.xml之间的主要区别是什么
  2. 使用managed-schema和schema.xml(经典)时有什么好处和坏处。
  3. 你能帮我理解solr6中推荐的内容吗?

    此致

    Shaffic

2 个答案:

答案 0 :(得分:10)

我在想到同样的事情之后做了一些调查,这是我能想到的最好的。

似乎schema.xmlmanaged-schema是不同的,只是在Solr6中更改了他们的名字。

托管架构的好处

  • 这样做的好处是,您可以更安全地更改架构,而无需担心拼写错误或创建无效架构。如果某些内容无效,API会拒绝您的更改。
  • Schema 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的进一步更改将被忽略。

答案 1 :(得分:1)

来自Solr 6.6参考documentation

  • managed-schema 是Solr默认使用的架构文件的名称 支持通过Schema API在运行时更改架构,或 Schemaless Mode功能。您可以显式配置托管 架构功能如果您选择使用备用文件名,但是 文件内容仍由Solr自动更新。

  • schema.xml 是架构文件的传统名称,可以是 由使用ClassicIndexSchemaFactory的用户手动编辑。

如果要使用schema.xml而不是通过schema api作为managed-schema手动编辑模式(尽管不推荐),可以通过在solrconfig.xml中设置schemaFactory配置来实现:  &lt; schemaFactory class =&#34; ClassicIndexSchemaFactory&#34; /&gt;

快速阅读此link,以便清楚地回答所有问题。