schema.xml配置——field

Solr可以看作是一个非关系型数据库,数据是保存在schema中,而每个schema里面的列就是filed。Field可以在schema.xml中定义:

schema.xml配置——field_第1张图片
schema.xml配置——field_第2张图片

从上面可以看到schema.xml文件中三个重要的部分为:

,包含了
定义主键
定义每个field的类型,以及如何对这个field进行解析(参照lucene中的FieldType)

Solr中的Field与Lucene中的是对应的,只需要了解相应的Field在Lucene中怎样配置即可。
下面介绍Solr中对Field的一些扩展支持:

Multivalued Field

多值Field,通常在同一个文档中,每个Field只存在一个值,如果将这个Field的多值属性设置为true,则这个Field可以保存多个值,例如:
  在一篇文档中有如下属性:


schema.xml配置——field_第3张图片

Link有两个值,那么在schema.xml中可以设置一个为link的Field:


Dynamic Field
  在标签下定义,可以设置模糊匹配,例如:

在Document中所有后缀为_ss的field都适用这个Field.

例如schema.xml中内容如下:

可以看到所有以facebook为前缀和twitter为前缀的field的定义都是一样的,所以可以对原文档中对应的field定义如下:

schema.xml配置——field_第4张图片

那么在schema.xml中对应的内容就可以用以下语句替换:

Copy Field
  就是根据一个类型的Field复制到另外一个Field。


不是在标签的子元素,而是在外面定义:


schema.xml配置——field_第5张图片

Solr对非文本的结构化数据也进行了支持,具体可以查阅Solr文档。Solr中常用的Field如下:

schema.xml配置——field_第6张图片
Solr中常用的Field

学习Solr中的Field时候要对比关系型数据库(如Mysql),以及结合Lucene中的Field。

你可能感兴趣的:(schema.xml配置——field)