solr7.1.0学习笔记(4)---认识配置文件schema.xml(managed-schema)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_39082031/article/details/78932713

1、schema文件是在SolrConfig中的架构工厂定义,有两种定义模式:

1.1、默认的托管模式:

solr默认使用的就是托管模式。也就是当在solrconfig.xml文件中没有显式声明<schemaFactory/>时,Solr隐式地使用ManagedIndexSchemaFactory,它是默认的"mutable"并将模式信息保存在一个managed-schema文件中。

<!-- An example of Solr's implicit default behavior if no
      no schemaFactory is explicitly defined.
 -->
  <schemaFactory class="ManagedIndexSchemaFactory">
    <bool name="mutable">true</bool>
    <str name="managedSchemaResourceName">managed-schema</str>
  </schemaFactory>

当然,也可以显式的声明schema文件,但是,当显式的声明schema文件的时候,文件的名字不能是managed-schema也不能是schema.xml。同时schema文件的名字也要与solrconfig.xml中声明的schema文件名一样。

1.2、经典schema.xml:

这种模式的配置方式是在solrconfig.xml文件中显式配置一个ClassicIndexSchemaFactory。ClassicIndexSchemaFactory 需要使用schema.xml配置文件,并且不允许在运行时对架构进行任何编程式更改。该schema.xml文件必须手动编辑,仅在加载集合时才加载。

<schemaFactory class="ClassicIndexSchemaFactory"/>


1.3、两种模式的区别:

1.3.1、两种模式下,schema文件的格式形式不同,默认的托管模式下的schema文件名字必须是managed-schema;而经典的schema.xml模式下schema文件名字必须是schema.xml。

1.3.2、两种模式下,solrconfig.xml文件中<schemaFactory/>声明的方式也不同。


2、两种模式之间的相互切换

2.1、从经典的schema.xml模式切换到默认托管模式:

只需要将solrconfig.xml文件中显示配置的<schemaFactory class="ClassicIndexSchemaFactory"/>删除或注释掉,然后重新启动solr即可。

当solr启动的时候回检测是否存在managed-schema,如果存在,那么这个managed-schema文件就是将要被读取的文件;如果managed-schema文件不存在,那么solr就会将schema.xml文件中的内容读取并将内容吸入新建的managed-schema文件,然后将schema.xml文件重命名为schema.xml.bak。

2.1、从默认的托管模式切换到经典的schema.xml模式:需要两步实现:

第一步:将managed-schema文件重命名为schema.xml;

第二步:在solrconfig.xml中显示的配置<schemaFactory class="ClassicIndexSchemaFactory"/>;

然后重新启动solr即可。


3、schema文件中各种标签的含义

3.1、<schema name="default-config" version="1.6"></schema>:这是schema文件的根节点,类似于html文件的<html></html>,只是schema文件还有一些属性。

3.2、<uniqueKey>id</uniqueKey>:指定某个字段是唯一的字段 。

3.3、<fieldType ></fieldType>:定义字段类型。

3.4、<field  name=" " type=" "/>:定义字段。

3.5、<dynamicField name=" " type=" " indexed="true" stored="true"/>:定义动态字段。

3.6、<copyField source=" " dest=" " />:复制字段。


上一节:solr7.1.0学习笔记(3)---solr创建core或collection

下一节:solr7.1.0学习笔记(5)---配置文件managed-schema(schema.xml)-字段类型fieldType的定义和属性

猜你喜欢

转载自blog.csdn.net/weixin_39082031/article/details/78932713