本文我們介紹mapping及相關(guān)用法
-
Mapping
mapping是類似數(shù)據(jù)庫中的表結(jié)構(gòu)定義,主要作用如下:
? - 定義Index下的字段名(Field Name)
? - 定義字段的類型,比如數(shù)值型、字符串型、布爾型等
? - 定義倒排索引相關(guān)設(shè)置,比如是否索引、記錄position等
查看某個(gè)索引的mapping,api如下:api -
自定義Mapping

Mapping中的字段類型一旦設(shè)定后,禁止直接修改,原因是Lucene實(shí)現(xiàn)的倒排索引生成后不允許修改,如果修改必須重新建立新的索引,然后做reindex操作。雖然mapping不能修改,但是可以新增字段,通過dynamic參數(shù)來控制字段的新增
? -- true(默認(rèn))允許自動(dòng)新增字段
? -- false不允許自動(dòng)新增字段,但文檔可以正常發(fā)寫入,但無法對(duì)新增的字段進(jìn)行查詢操作
? -- strict文檔不能寫入,報(bào)錯(cuò)

-
copy_to參數(shù)
? - 將字段的值賦值到目標(biāo)字段,實(shí)現(xiàn)類似的 _all 的作用
? - 不會(huì)出現(xiàn)在_source 中,只用來搜索




-
index參數(shù)


那么什么時(shí)候會(huì)用到index這個(gè)設(shè)置呢?當(dāng)我們?cè)贓S中存的一些字段,這些字段是不需要被查詢的或者不希望這些字段用來被查詢,比如手機(jī)很號(hào)、身份證號(hào)等一些敏感信息,我們就可以把他們的index字段設(shè)置為false,這樣既能滿足我們的需求同時(shí)還能節(jié)省大量的磁盤空間(因?yàn)椴淮娴古潘饕?,肯定能?jié)省大量的磁盤和內(nèi)存空間)
-
index_options參數(shù)
index_options 用于控制倒排索引記錄的內(nèi)容,有如下4種配置
? - docs 只記錄doc id
? - freqs 記錄doc id 和 term frequencies
? - positions 記錄doc id、term frequencies、和term position
? - offsets 記錄doc id、term frequencies、term position 和 character offsets
text類型默認(rèn)配置為positions,其他默認(rèn)docs,倒排索引記錄的內(nèi)容越多,占用的空間越大。

-
null_value參數(shù)

除了上面介紹的幾個(gè)設(shè)置,關(guān)于mapping的更多設(shè)置可以參考官方文檔點(diǎn)擊查看
