12有决、ES的數(shù)據(jù)類(lèi)型闸拿,Mapping的基本使用,如何使用復(fù)雜數(shù)據(jù)類(lèi)型

包含的主要內(nèi)容: ES的數(shù)據(jù)類(lèi)型书幕,Mapping的基本使用新荤,如何使用復(fù)雜數(shù)據(jù)類(lèi)型

1、ES數(shù)據(jù)類(lèi)型總覽

1. 核心數(shù)據(jù)類(lèi)型

(1)字符串類(lèi)型: text, keyword

(2)數(shù)字類(lèi)型:long, integer, short, byte, double, float, half_float, scaled_float

①long         -- 帶符號(hào)的64位整數(shù)台汇,最小值-2^63苛骨,最大值2^63-1
②integer      -- 帶符號(hào)的32位整數(shù),最小值-2^31苟呐,最大值2^31-1
③short        -- 帶符號(hào)的16位整數(shù)痒芝,最小值-32768,最大值32767
④byte         -- 帶符號(hào)的8位整數(shù)牵素,最小值-128严衬,最小值127
⑤double       -- 雙精度64位IEEE 754 浮點(diǎn)數(shù)
⑥float        -- 單精度32位IEEE 754 浮點(diǎn)數(shù)
⑦h(yuǎn)alf_float   -- 半精度16位IEEE 754 浮點(diǎn)數(shù)
⑧scaled_float -- 帶有縮放因子的縮放類(lèi)型浮點(diǎn)數(shù)

(3)日期:date

(4)日期 納秒:date_nanos

(5)布爾型:boolean

(6)二進(jìn)制:binary

(7)范圍: integer_range, float_range, long_range, double_range, date_range

2. 復(fù)雜數(shù)據(jù)類(lèi)型

(1)Object: object( 用于單個(gè)JSON對(duì)象 )

(2)Nested: nested ( 用于JSON對(duì)象數(shù)組 )

3. 地理數(shù)據(jù)類(lèi)型

(1)Geo-point: geo_point ( 緯度/經(jīng)度 )

(2)Geo-shape: geo_shape ( 用于多邊形等復(fù)雜形狀 )

4. 特殊數(shù)據(jù)類(lèi)型

(1)IP: ip (IPv4 和 IPv6 地址)

(2)Completion類(lèi)型:completion ( 提供自動(dòng)完成建議 )

(3)Token count:token_count ( 計(jì)算字符串中token的數(shù)量 )

(4)mapper-murmur3:murmur3( 在索引時(shí)計(jì)算值的哈希并將其存儲(chǔ)在索引中 )

(5)mapper-annotated-text:annotated-text ( 索引包含特殊標(biāo)記的文本(通常用于標(biāo)識(shí)命名實(shí)體) )

(6)Percolator:(Accepts queries from the query-dsl)

(7)Join:( 為同一索引內(nèi)的文檔定義父/子關(guān)系 )

(8)Alias:( 為現(xiàn)有字段定義別名)

(9)Rank feature:(Record numeric feature to boost hits at query time.)

(10)Rank features:(Record numeric features to boost hits at query time.)

(11)Dense vector:(Record dense vectors of float values.)

(12)Sparse vector:(Record sparse vectors of float values.)

(13)Search-as-you-type:(A text-like field optimized for queries to implement as-you-type completion)

(14) Flattened : Allows an entire JSON object to be indexed as a single field.

(15) Shapeshape for arbitrary cartesian geometries.

(16) Histogramhistogram for pre-aggregated numerical values for percentiles aggregations.

5.數(shù)組類(lèi)型

? 在Elasticsearch中,數(shù)組不需要一個(gè)特定的數(shù)據(jù)類(lèi)型笆呆,任何字段都默認(rèn)可以包含一個(gè)或多個(gè)值请琳,當(dāng)然,這多個(gè)值都必須是字段指定的數(shù)據(jù)類(lèi)型赠幕。

6.Multi-fields

? Multi-fields 通常用來(lái)以不同的方式或目的索引同一個(gè)字段俄精。比如,一個(gè)字符串類(lèi)型字段可以同時(shí)被映射為 text 類(lèi)型以用于全文檢索榕堰、 keyword字段用于排序或聚合嘀倒。又或者,你可以用standard分析器、english分析器和french分析器來(lái)索引同一個(gè) text字段测蘑。

2、查看Mapping

GET /index/_mapping

3康二、手動(dòng)創(chuàng)建Mapping

只能創(chuàng)建index時(shí)手動(dòng)建立mapping碳胳,或者新增field mapping,但是不能update field mapping

PUT /website
{
  "mappings": {
    "properties": {
      "author_id": {
        "type": "long"
      },
      "title": {
        "type": "text",
        "analyzer": "english"
      },
      "content": {
        "type": "text"
      },
      "post_date": {
        "type": "date"
      },
      "publisher_id": {
        "type": "keyword"
      }
    }
  }
}

4沫勿、添加field并指定mapping

PUT /website/_mappings
{
  "properties": {
    "new_field": {
      "type": "text",
      "analyzer": "english"
    }
  }
}
##查看一下是否新增了
GET website/_mapping

## 存入數(shù)據(jù)
POST /website/_doc
{
  "author_id":123123123,
  "title":"english dog",
  "content":"123",
  "post_date":"2020-03-22",
  "publisher_id":123
}

5挨约、測(cè)試Mapping的分詞

GET /website/_analyze
{
  "field": "content",
  "text": "my-dogs" 
}

GET website/_analyze
{
  "field": "new_field",
  "text": "my dogs"
}
##未分詞的類(lèi)型 
GET /website/_analyze
{
  "field": "publisher_id",
  "text": "my-dogs"
}

6、復(fù)雜數(shù)據(jù)類(lèi)型(object)

PUT /company/_doc/1
{
  "address": {
    "country": "china",
    "province": "guangdong",
    "city": "guangzhou"
  },
  "name": "jack",
  "age": 27,
  "join_date": "2017-01-01"
}
GET /company/_mapping

? 查詢(xún)結(jié)果

{
  "company" : {
    "mappings" : {
      "properties" : {
        "address" : {
          "properties" : {
            "city" : {
              "type" : "text",
              "fields" : {
                "keyword" : {
                  "type" : "keyword",
                  "ignore_above" : 256
                }
              }
            },
            "country" : {
              "type" : "text",
              "fields" : {
                "keyword" : {
                  "type" : "keyword",
                  "ignore_above" : 256
                }
              }
            },
            "province" : {
              "type" : "text",
              "fields" : {
                "keyword" : {
                  "type" : "keyword",
                  "ignore_above" : 256
                }
              }
            }
          }
        },
        "age" : {
          "type" : "long"
        },
        "join_date" : {
          "type" : "date"
        },
        "name" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        }
      }
    }
  }
}

復(fù)雜數(shù)據(jù)類(lèi)型會(huì)在底層進(jìn)行數(shù)據(jù)的轉(zhuǎn)換

##object類(lèi)型
{
    "authors": [
        { "age": 26, "name": "Jack White"},
        { "age": 55, "name": "Tom Jones"},
        { "age": 39, "name": "Kitty Smith"}
    ]
}
存儲(chǔ)的格式产雹;name和age會(huì)分開(kāi)诫惭,從列式轉(zhuǎn)化成行式來(lái)存儲(chǔ)
{
    "authors.age":    [26, 55, 39],
    "authors.name":   [jack, white, tom, jones, kitty, smith]
}

補(bǔ)充一個(gè)官網(wǎng)示例:

PUT my_index
{
  "mappings": {
    "properties": { 
      "manager": {
        "properties": { 
          "age":  { "type": "integer" },
          "name": { "type": "text"  }
        }
      },
      "employees": {
        "type": "nested",   // 數(shù)組類(lèi)型(復(fù)雜數(shù)據(jù)類(lèi)型)
        "properties": { 
          "age":  { "type": "integer" },
          "name": { "type": "text"  }
        }
      }
    }
  }
}

PUT my_index/_doc/1 
{
  "region": "US",
  "manager": {
    "name": "Alice White",
    "age": 30
  },
  "employees": [
    {
      "name": "John Smith",
      "age": 34
    },
    {
      "name": "Peter Brown",
      "age": 26
    }
  ]
}

Elasticsearch 6.x Mapping設(shè)置 - 掘金 https://juejin.im/post/5b799dcb6fb9a019be279bd7

Field datatypes | Elasticsearch Reference [7.6] | Elastic https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-types.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蔓挖,隨后出現(xiàn)的幾起案子夕土,更是在濱河造成了極大的恐慌,老刑警劉巖瘟判,帶你破解...
    沈念sama閱讀 219,110評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件怨绣,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡拷获,警方通過(guò)查閱死者的電腦和手機(jī)篮撑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)匆瓜,“玉大人赢笨,你說(shuō)我怎么就攤上這事⊥灾ǎ” “怎么了茧妒?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,474評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)糠馆。 經(jīng)常有香客問(wèn)我嘶伟,道長(zhǎng),這世上最難降的妖魔是什么又碌? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,881評(píng)論 1 295
  • 正文 為了忘掉前任九昧,我火速辦了婚禮,結(jié)果婚禮上毕匀,老公的妹妹穿的比我還像新娘铸鹰。我一直安慰自己,他們只是感情好皂岔,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布蹋笼。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪剖毯。 梳的紋絲不亂的頭發(fā)上圾笨,一...
    開(kāi)封第一講書(shū)人閱讀 51,698評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音逊谋,去河邊找鬼擂达。 笑死,一個(gè)胖子當(dāng)著我的面吹牛胶滋,可吹牛的內(nèi)容都是我干的板鬓。 我是一名探鬼主播,決...
    沈念sama閱讀 40,418評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼究恤,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼俭令!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起部宿,我...
    開(kāi)封第一講書(shū)人閱讀 39,332評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤抄腔,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后窟赏,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體妓柜,經(jīng)...
    沈念sama閱讀 45,796評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評(píng)論 3 337
  • 正文 我和宋清朗相戀三年涯穷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了棍掐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,110評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡拷况,死狀恐怖作煌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情赚瘦,我是刑警寧澤粟誓,帶...
    沈念sama閱讀 35,792評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站起意,受9級(jí)特大地震影響鹰服,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜揽咕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評(píng)論 3 331
  • 文/蒙蒙 一悲酷、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧亲善,春花似錦设易、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,003評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)戏溺。三九已至,卻和暖如春屠尊,著一層夾襖步出監(jiān)牢的瞬間旷祸,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,130評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工讼昆, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留肋僧,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,348評(píng)論 3 373
  • 正文 我出身青樓控淡,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親止潘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子掺炭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容