一、<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 文件中,和其他字段一樣,它也有個名詞,字段類型,和屬性。