Elasticsearch之Mapping

本文我們介紹mapping及相關(guān)用法

  • Mapping

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

自定義mapping的api如下圖所示:
自定義mapping API

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ò)


API
  • copy_to參數(shù)

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

首先創(chuàng)建一個(gè)mapping
設(shè)置mapping
新建一個(gè)文檔
新建文檔
查詢
查詢

查詢結(jié)果
查詢結(jié)果
  • index參數(shù)

控制當(dāng)前字段是否索引,默認(rèn)為true,即記錄索引,false不記錄,即不可搜索
image.png
結(jié)果

那么什么時(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)容越多,占用的空間越大。

index_options設(shè)定如下:
index_options設(shè)置
  • null_value參數(shù)

當(dāng)字段遇到null值時(shí)的處理策略,默認(rèn)為null,即空值,此時(shí)es會(huì)忽略該值??梢酝ㄟ^設(shè)定null_value參數(shù)取設(shè)定字段的默認(rèn)值。
null_value設(shè)置

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Mapping mapping類似數(shù)據(jù)庫中的表結(jié)構(gòu)定義,主要作用如下: 定義Index下的字段名(Field Na...
    小波同學(xué)閱讀 779評(píng)論 0 1
  • Mapping簡(jiǎn)介 mapping 是用來定義文檔及其字段的存儲(chǔ)方式、索引方式的策略,主要作用如下: 定義inde...
    小波同學(xué)閱讀 1,360評(píng)論 1 1
  • 這篇文章主要介紹 Mapping、Dynamic Mapping 以及 ElasticSearch 是如何自動(dòng)判斷...
    武培軒閱讀 434評(píng)論 0 1
  • Mapping Mapping類似數(shù)據(jù)庫中的schema定義,作用如下:定義索引中的字段的名稱 定義字段的數(shù)據(jù)類...
    辻子路閱讀 683評(píng)論 0 0
  • Mapping 概念:mapping就是ES數(shù)據(jù)字段field的type類型元數(shù)據(jù),ES在創(chuàng)建索引的時(shí)候,動(dòng)態(tài)映射...
    咸魚鮮魚閱讀 856評(píng)論 0 1

友情鏈接更多精彩內(nèi)容