managed-schema 文件详解
managed-schema 文件详解
找到配置的Core Admin的目录下的配置文件,我这是solrhome\demo_core\conf\managed-schema
在managed-schema.xml文件中,主要配置SolrCore数据信息,包括:Field和FiledType的定义等信息,在solr中,Field和FieldType都需要先定义后使用。
- field详解:

name:指定域的名称(自定义)type:指定域的类型index:是否索引
是:(将分好的词进行索引,索引的目的,就是为了搜索)
否:(不索引,也就是不对该field域进行搜索)stored:是否存储
是:将field域中的内容存储到文档域中。存储的目的,就是为了搜索页面显示取值用的。
否:不将field域中的内容存储到文档域中。不存储,则搜索页面中没法获取该field域中的值required:是否必须multiValued:是否多值,比如查询数据需要关联多个字段数据,一个field存储多个值信息,必须将multiValued设置为true。
- dynamicField

name为*_i,定义它的type为int,那么在使用这个字段的时候,任何以_i结果的字段都被认为符合这个定义
- uniqueKey

其中的id是在field标签中已经定义好的域名,而且该域设置为required为true。一个managed-schema文件中必须有且仅有一个唯一键。
- copyfield
复制域
应用场景:我们在搜索时比如输入java,一篇文章分为标题、简介、内容等很多字段,输入的关键字需要定制solr中的域进行检索,不可能从一个表中将所有的字段进行索引,因为有些字段不需要索引,所以出现copyField域,把多个域的关键词复制到同一个域,多个域时,可以放到一个域中。就不用定义那么多域了。搜索比较方便。
实例:<copyField source="projectName" dest="keywords"/>Source:是Field域的名称Dest:是destination的缩写 目标域
使用案例:
- 1、两个普通域:title和author

- 2、使用复制域,将两个域进行索引检索

- 3、该域名field name=”text”即使复制域

- 1、两个普通域:title和author
fieldType(域类型)

| solr的fieldtype属性 | javaBean属性类型 |
|---|---|
| string | String |
| boolean | Boolean |
| pint | Integer |
| pdouble | Double |
| plong | Long |
| pfloat | Float |
| pdata | Data |
- 分词器

Name:指定域类型的名称Class:指定该域类型对应的solr的类型Analyzer:指定分词器Type:index、query,分别指定搜索和索引时的分析器Tokenizer:指定分词器Filter:指定过滤器
本作品采用《CC 协议》,转载必须注明作者和本文链接
关于 LearnKu