在默認情況下,開啟_all和_source
這樣索引下來,占用空間很大.

根據我們單位的情況,我覺得可以將需要的字段保存在_all中,然后使用IK分詞以備查詢,其余的字段,則不存儲.
並且禁用_source字段.(也可以通過_source includes或者excludes 指定或者排除字段)
{ "mappings": { "sod_song_ksc": { "dynamic_templates": [ { "all_field": { "mapping": { "index": "no", "store": "yes", "type": "{dynamic_type}", "include_in_all": false }, "match": "*" } } ], "_source": { "enabled": false }, "_all": { "enabled": true, "analyzer": "ik" }, "properties": { "SongID": { "type": "long", "store": "yes", "index": "not_analyzed", "include_in_all": true } } } } }
這里采用了動態映射的功能(dynamic_templates),符合條件的字段,直接采用動態映射中預先的配置.
這里動態映射匹配所有字段,將_all禁用。
然后有需要的字段,再逐個開啟.
索引之后,效果非常明顯.磁盤占用減少了一半還多.
動態映射 {name}表示文檔中原始的字段名稱,{dynamic_type}表示原始文檔的類型

動態映射在實際使用中,除了匹配字段名稱,還可以匹配類型。
"match_mapping_type": "string"
動態映射如果設置在 "_default_" 則表示規則應用在所有類型的索引上.
雖然禁用_source,指定加入_all的字段,可以大幅減少磁盤空間占用,
但是查詢會麻煩一些。原來可以直觀看到的數據沒有了.

而且默認情況下,沒有足夠的信息顯示.

所以查詢顯得麻煩一些,使用如下的方式:

轉自:http://m.blog.itpub.net/29254281/viewspace-2103996/