本文章全部内容均翻译自solr自带的配置文件。
1、Field结点说明
name: 必须的,field的名字
type: 必须的,fieldType部分所定义的type的名字
indexed: 如果想要这个字段被索引设置为true(可搜索或可排序)
stored: 如果想要这个字段可以被还原,设置为true。通俗一点说,就是搜索的时候如果想要能查询出这个字段,应该设置为true。
docValues: 如果这个字段应该有文档值(doc values),设置为true。文档值在门面搜索,分组,排序和函数查询中会非常有用。虽然不是必须的,而且会导致生成索引变大变慢,但这样设置会使索引加载更快,更加NRT友好,更高的内存使用效率。然而也有一些使用限
制,目前仅支持StrField, UUIDField和所有 Trie*Fields, 并且依赖字段类型, 可能要求字段为单值(single-valued)的,必须的或者有默认值。
multiValued:如果这个字段在每个文档中可能包含多个值,设置为true
required: 如果这个字段是必须的,设置为true
default: 在添加文档时,如果没有给这个字段设置值,会使用的默认值
2、dynamicField
动态字段允许 solr 索引没有在 schema 中明确定义的字段。这个在忘记定义一些字段时很有用。动态字段可以让系统更灵活,通用性更强。
例如:要索引一个叫 cost_i 的字段,但是 schema 中不存在 cost_i 的字段,这样 cost_i 将被索引到 *_i 字段中。
注意:在name中定义的pattern只能在开头或结尾有一个*
3、uniqueKey
文档的唯一标识。uniqueKey指定的字段必须是required=true
4、fieldType
定义字段类型