Solr第四篇——schema.xml的配置

在solr家里面的核内,的conf目录下,有两个配置文件是我们要掌握的。
一个是核心配置文件solrconfig.xml,一个就是schema.xml
Schema.xml中配置的是什么东西?
配置了大量的域。
打开schema.xml。看,里面配置了大量的域,选取这个进行介绍。
Solr第四篇——schema.xml的配置

这条配置是个什么意思呢?
意思就是配置了一个域,
名字叫version
类型是long类型,注意:这里的long是别名。
找到别名位置:
Solr第四篇——schema.xml的配置
所以:
名字为version的这个域,是longField类型的(lucene的域学习中介绍过),这个域是不分词,后面配置了两个 就是是否索引,true,是否储存,true、
也就是说:
前面我们在lucene中,创建索引的时候,创建索引的代码。现在在solr中,使用配置文件进行替代,配置在schema.xml。使用的时候,就直接用这个名字,然后对应的域值,就ok。

再继续往下看:发现这么一条数据
Solr第四篇——schema.xml的配置

这个就是配置的id域。有个required=“true”;是必须的,是什么意思?
我们在lucene中的时候,id 是不必须的。但是实际上是因为:
在lucene我说过:当我们在将文档对象扔进索引库的时候,自动为每个文档创建了索引,就是每个文档对象都有id;而使用solr的时候,不再自定创建这个域,那么就要我么指定;
所以对于文档对象的id,对比数据库进行理解。相当于数据库的主键id;lucene是自己生成,类似自增长;solr是在schema.xml中进行配置,我们指定。类似于assigned。
multiValued=”false”;多值。False;就是id唯一;不能多个;
除了配置的filed 还有这样的配置:
Solr第四篇——schema.xml的配置

这就是动态域;什么是动态域呢?
先说一个事情:
schema.xml中配置的域,就是我们要使用的域,意思就是:
我们在使用solr进行开发的时候,要想使用一个域,这个域必须在shema.xml中有配置。如果没有那么就会报错,
Schema.xml中配置了很多域,你可以直接使用,也可以自己配置。自定义域。
而动态域就是配置一些,域名字是通配符的域;
这种动态匹配,很多配置文件都有使用,不再介绍。
继续往下看:

Solr第四篇——schema.xml的配置

唯一主键id,前面已经介绍完了。
再往下看:
Solr第四篇——schema.xml的配置
copyField拷贝域:
这个域也是很重要的,这个域是什么意思,又有什么作用呢?
source=”name” 原域
dest=”text” 目标域;
就是将name域中的内容拷贝到text域中,这个拷贝有什么意义呢?
在我们开发中:
回想一下:lucene我们实现的查找文档的需求的案例代码;我们在搜索的时候,指定了在filename域去搜索“全文”,如果要搜索内容,那么我们就要指定到内容的域中去搜索,
意思就是,域不同,搜索的时候我们要制定,在指定的域中进行搜索。
但是,我们在实际开发过程中,面对的需求,往往是不知道在哪个域中搜索,或者不指定
域进行搜索。这个时候,那么我们要想搜索 文件名字和内容都含有“全文”的只能进行遍历,这样显然不好,性能也会大大降低;
而这个拷贝域就帮我们解决了这个问题:
拷贝域的作用就是将多个域中的内容拷贝到一个域中去。搜索的时候,只搜索拷贝域就ok了;
继续看:
Solr第四篇——schema.xml的配置

这后面就是定义域了,定义一个域,然后使用的分词器类型,。。我们在配置IK分词器的时候也按照这个模板进行配置就好了。

Schema.xml配置文件就介绍到此吧。
其他的就没什么好看的了。
至此,对以上总结几句话:
使用solr时候,域先定义再使用,
定义域schema.xml中进行配置。
这个文件在solr家下面的核里面;
这个配置文件中配置了域,动态域,拷贝域,域的类型,唯一主键
分词器配置到域中,
域的类型有:index和query。index 是创建索引,query是查询索引。(介绍漏了,也就不补充了)