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

1.1、默认的托管模式:

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

  1. <span style="font-size:14px;"><!-- An example of Solr's implicit default behavior if no
  2. no schemaFactory is explicitly defined.
  3. -->
  4. <schemaFactory class="ManagedIndexSchemaFactory">
  5. <bool name="mutable">true</bool>
  6. <str name="managedSchemaResourceName">managed-schema</str>
  7. </schemaFactory></span>

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

1.2、经典schema.xml:

这种模式的配置方式是在solrconfig.xml文件中显式配置一个ClassicIndexSchemaFactory。ClassicIndexSchemaFactory

需要使用schema.xml配置文件,并且不允许在运行时对架构进行任何编程式更改。该schema.xml文件必须手动编辑,仅在加载集合时才加载。

  1. <span style="font-size:14px;"><schemaFactory class="ClassicIndexSchemaFactory"/></span>

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=" " />:复制字段。

认识配置文件schema.xml(managed-schema)的更多相关文章

  1. Solr的学习使用之(二)schema.xml等配置文件的解析

    上一篇文章已经讲解了如何部署Solr,部署是部署完了,可是总觉得心里空空的,没底,里面有N多配置文件,比如schema.xml.solrConfig.xml.solr.xml and so on……都 ...

  2. SOLR企业搜索平台 三 (schema.xml配置和solrj的使用)

    标签:solrj 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://3961409.blog.51cto.com/3951409/8 ...

  3. solr官方文档翻译系列之schema.xml配置介绍

    常见的元素 <field name="weight" type="float" indexed="true" stored=" ...

  4. Solr 6.7学习笔记(02)-- 配置文件 managed-schema (schema.xml) -- 样例(6)

    managed-schema 样例: <?xml version="1.0" encoding="UTF-8" ?> <!-- License ...

  5. Solr 6.7学习笔记(02)-- 配置文件 managed-schema (schema.xml) - filter(5)

    自定义fieldType时,通常还会用到filter.filter必须跟在tokenizer或其它filter之后.如: <fieldType> <analyzer> < ...

  6. Solr入门之(5)配置文件schema.xml

    该配置文件中的标签:<fileTypes>.<fields>.<uniqueKey>.<copyField> fieldType说明 标签types中定 ...

  7. Mycat配置文件schema.xml参数配置

    Mycat原理: Mycat的原理中最重要的一个动词是"拦截",它拦截了用户发送过来的SQL语句,首先对SQL语句做了一些特定的分析:如分片分析.路由分析.读写分离分析.缓存分析等 ...

  8. solr4.5 schema.xml配置文件

    schema.xml配置文件是用于定义index索引库的结构,有点类似于数据表表的定义. 当我们打开schema.xml配置文件时,也许会被里面密密麻麻的代码所吓倒,其实不必惊慌,里面其实就两个东西f ...

  9. Solr 配置文件之schema.xml

    schema.xml这个配置文件的根本目的是为了通过配置告诉Solr怎样建立索引. solr的数据结构例如以下: document:一个文档.一条记录 field:域.属性 solr通过搜索某个或某些 ...

  10. Solr 6.7学习笔记(02)-- 配置文件 managed-schema (schema.xml)(3)

         5. <fieldType> fieldType主要定义了一些字段类型,其name属性值用于前面<field>中的type属性的值.e.g. <fieldTyp ...

随机推荐

  1. python解压压缩包

    默认解压到当前目录 import shutil shutil.unpack_archive('/root/redis-3.2.3.tar.gz') 解压到home目录下 import shutil s ...

  2. Java多线程(3):wait()/notify()实例

    下面是代码实例 public class WaitDemo implements Runnable { private Object lock; public WaitDemo(Object lock ...

  3. 【TypeScript】学习笔记 把一些需要记的记录一下

    安装typescript: npm install -g typescript 启动typesctipt自动编译: tsc 文件名.ts --watch 函数参数默认值: 1.有默认值参数的,声明在最 ...

  4. .NET制作滚动条

    今天,在工作的时候,刚好做到了滚动条,对这点不是很懂,所以,研究了一下,记录在这里,与大家分享. 对于前台页面,我们就只需要设置数据表的样式:style="overflow: auto; 即 ...

  5. python-Web-数据库-Redis

    概述: >>>安装: >>>数据类型: string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合) &g ...

  6. Flume概述

    flume是分布式的,可靠的,用于从不同的来源有效收集 聚集 和 移动 大量的日志数据用以集中式的数据存储的系统. 是apache的一个顶级项目. 系统需求:jdk1.6以上,推荐java1.7

  7. PTA(Advanced Level)1036.Boys vs Girls

    This time you are asked to tell the difference between the lowest grade of all the male students and ...

  8. windows下命令行利器---Cmder(安装,中文乱码,配置右键菜单)

    很多人都是在win下开发的,这样就会出现,经常需要命令行操作,而win cmd命令和linux命令有很大差异,导致大家很难受,今天给大家介绍一个win下命令行的利器-Cmder 一.先看一下它的容颜 ...

  9. 房地产大佬潘石屹推荐学Python编程,这本从0到1就够了

    潘石屹推荐学Python编程,很多人都不相信,他的微博真真切切. 连房地产都开始学Python了,因为要听懂机器,让机器为我所用. 再不学习Python真的晚了!!!! 如何学? 怎么学? 还是推荐高 ...

  10. 怎么快速写好看的手机menu菜单

    要达到这样的效果: <div class="menu"> <div class="menu-1"> <img alt=" ...