一、<fields> 中提供的可选属性
1、name(必须):域的名称
2、type(必须):域的类型,来自于 FieldType。
3、indexed=true|false:是否建立索引
4、stored=true|false:是否存储
5、docValues=true|false:加快索引。应用于分面,分组,排序和查询。只对指定的数据类型有效:StrField、Trie*Field 和 UUIDField。
6、multiValued=true|false:多值。
7、omitNorms=true|false:忽略规范
8、termVectors=true|false:true 会存储 term vector。当使用近似索引时,用来作为相似词的域应该存储起来
9、termPosition=true|false:存储 term vector 的地址信息,会消耗存储开销
10、termOffsets=true|false:存储 term vector 的偏移量,会消耗内存开销
11、required=true|false:true,必须
12、default:默认值
二、<copyField>:将多个域值拷贝到一个域中,以便进行统一检索。注意:由于 des 域是由多个 source 域构成,因此 des 域要设置为 multiValued。
1、dest:目标域,数据将存储到该域中
2、source:来源域,数据来源于该域
三、<dynamicField>:
动态字段(Dynamic fields)允许 solr 索引没有在 schema 中明确定义的字段。这个在忘记定义一些字段时很有用。动态字段可以让系统更灵活,通用性更强。 动态字段和常规字段类似,除了它名字中包含一个通配符外,在索引文档时,一个字段如果在常规字段中没有匹配时,将到动态字段中匹配。 假设schema中定义了一个叫*_i的动态动态字段,如果要索引一个叫 cost_i 的字段,但是 schema 中不存在 cost_i 的字段,这样 cost_i 将被索引到 *_i 字段中。 动态字段也是定义在 schema.xml 文件中,和其他字段一样,它也有个名词,字段类型,和属性。