Field有以下属性,
name:mandatory,field的名字。
type:mandatory,在 <types>中预先定义好的类型名。
indexed:如果field需要被索引(可搜索或可排序),则定义为true。
stored:如果field需要在查询结果中显示,则定义为true。
multiValued:如果每一个document的这个field可能包含多个值,则定义为true。
omitNorms:(expert) 设置为true,则忽略filed有关的norms(thisdisables length normalization and index-time boosting for the field,节省内存)。只有全文filed或者需要index-timeboost的字段需要norms。原始类型(non-analyzed)的norms默认忽略掉。
termVectors:默认false,设置为true来存储给定filed的term vector,当使用相似检索时,用来做相似词的fileds应该被存储来获得最佳的性能。
注:所谓term vector就是对于documents的某一field,如title,bod这种文本类型的,建立词频的多维向量空间.每一个词就是一维,这维的值就是这个词在这个field中的频率。
termPositions:存储term vector的地址信息,会增加存储的开销。
termOffsets:存储term vector的偏移量,会增加存储开销。
default:在添加一个document时,如果没有指定值时,使用这个默认值。
dynamicField 节点:如果遇到没有定义的field,可以通过匹配dynamicField来指定前缀后缀来匹配field名称,比如_i可以匹配ID_i,i_*可以匹配i_ID。“*”只能是前缀或者后缀。
一下是与field相关的节点,
uniqueKey:可以唯一标识一个document的field。除非该field被标记为required="false",否则这个field都是必须的。
defaultSearchField:当解析没有明确指明field的querystring,queryparser会使用defaultSearchField。机器(非用户)生成的查询最好是明确的,或者会使用“df”(在solrconfig.xml),都比defaultSearchField优先。
Note:如果在solrconfig.xml里定义了的df,df更优先,不建议再使用defaultSearchField。
copyField:在document被加入索引是,拷贝一个field到另一个field。可以用来给同一个field立不同的索引,或者添加多个field到同一个field,可以简单快速的搜索。