溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Elasticsearch映射字段數(shù)據(jù)類型及管理的方法

發(fā)布時(shí)間:2022-04-19 15:13:00 來源:億速云 閱讀:146 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容主要講解“Elasticsearch映射字段數(shù)據(jù)類型及管理的方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Elasticsearch映射字段數(shù)據(jù)類型及管理的方法”吧!

Elasticsearch映射管理

在Elasticsearch 6.0.0或更高版本中創(chuàng)建的索引只包含一個(gè)mapping type。 在5.x中使用multiple mapping types創(chuàng)建的索引將繼續(xù)像以前一樣在Elasticsearch 6.x中運(yùn)行。 Mapping types將在Elasticsearch 7.0.0中完全刪除

一 映射介紹

在創(chuàng)建索引的時(shí)候,可以預(yù)先定義字段的類型及相關(guān)屬性

Es會(huì)根據(jù)Json數(shù)據(jù)源的基礎(chǔ)類型,猜測(cè)你想要映射的字段,將輸入的數(shù)據(jù)轉(zhuǎn)變成可以搜索的索引項(xiàng)。

Mapping是我們自己定義的字段數(shù)據(jù)類型,同時(shí)告訴es如何索引數(shù)據(jù)及是否可以被搜索

作用:會(huì)讓索引建立的更加細(xì)致和完善

1.1 字段數(shù)據(jù)類型

string類型:text,keyword

數(shù)字類型:long,integer,short,byte,double,float

日期類型:data

布爾類型:boolean

binary類型:binary

復(fù)雜類型:object(實(shí)體,對(duì)象),nested(列表)

geo類型:geo-point,geo-shape(地理位置)

專業(yè)類型:ip,competion(搜索建議)

1.2 映射參數(shù)

屬性描述適合類型
store值為yes表示存儲(chǔ),no表示不存儲(chǔ),默認(rèn)為noall
indexyes表示分析,no表示不分析,默認(rèn)為truetext
null_value如果字段為空,可以設(shè)置一個(gè)默認(rèn)值,比如"NA"(傳過來為空,不能搜索,na可以搜索)all
analyzer可以設(shè)置索引和搜索時(shí)用的分析器,默認(rèn)使用的是standard分析器,還可以使用whitespace,simple。都是英文分析器all
include_in_all默認(rèn)es為每個(gè)文檔定義一個(gè)特殊域_all,它的作用是讓每個(gè)字段都被搜索到,如果想讓某個(gè)字段不被搜索到,可以設(shè)置為falseall
format時(shí)間格式字符串模式date

二 創(chuàng)建索引

text類型會(huì)取出詞做倒排索引,keyword不會(huì)被分詞,原樣存儲(chǔ),原樣匹配

mapping類型一旦確定,以后就不能修改了

#6.x的版本沒問題
PUT books
{
  "mappings": {
    "book":{
      "properties":{
        "title":{
          "type":"text",
         	"analyzer": "ik_max_word"
        },
        "price":{
          "type":"integer"
        },
        "addr":{
          "type":"keyword"
        },
        "company":{
          "properties":{
            "name":{"type":"text"},
            "company_addr":{"type":"text"},
            "employee_count":{"type":"integer"}
          }
        },
        "publish_date":{"type":"date","format":"yyy-MM-dd"}
      }
    }
  }
}

7.x版本以后

PUT books
{
  "mappings": {
    "properties":{
      "title":{
        "type":"text",
        "analyzer": "ik_max_word"
      },
      "price":{
        "type":"integer"
      },
      "addr":{
        "type":"keyword"
      },
      "company":{
        "properties":{
          "name":{"type":"text"},
          "company_addr":{"type":"text"},
          "employee_count":{"type":"integer"}
        }
      },
      "publish_date":{"type":"date","format":"yyy-MM-dd"}
    }
  }
}

插入數(shù)據(jù)測(cè)試:

PUT books/_doc/1
{
  "title":"大頭兒子小偷爸爸",
  "price":100,  
  "addr":"北京天安門",
  "company":{
    "name":"我愛北京天安門",
    "company_addr":"我的家在東北松花江傻姑娘",
    "employee_count":10
  },
  "publish_date":"2019-08-19"
}
#測(cè)試數(shù)據(jù)2
PUT books/_doc/2
{
  "title":"白雪公主和十個(gè)小矮人",
  "price":"99", #寫字符串會(huì)自動(dòng)轉(zhuǎn)換
  "addr":"黑暗森里",
  "company":{
    "name":"我的家鄉(xiāng)在上海",
    "company_addr":"朋友一生一起走",
    "employee_count":10
  },
  "publish_date":"2018-05-19"
}

三 查看索引

#查看books索引的mapping
GET books/_mapping
#獲取所有的mapping
GET _all/_mapping

到此,相信大家對(duì)“Elasticsearch映射字段數(shù)據(jù)類型及管理的方法”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI