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 协议》,转载必须注明作者和本文链接