Elasticsearch第9節(jié) mapping 及數(shù)據(jù)類型

索引的mapping

mapping類似于ddl,創(chuàng)建索引的時(shí)候,可以預(yù)先指定字段的類型及相關(guān)屬性民逼。

#索引名/_mapping
GET /lib1/_mapping
{
  "lib1" : {
    "mappings" : {
      "properties" : {
        "age" : {
          "type" : "long"
        },
        "doc" : {
          "properties" : {
            "sex" : {
              "type" : "text",
              "fields" : {
                "keyword" : {
                  "type" : "keyword",
                  "ignore_above" : 256
                }
              }
            }
          }
        },
        "name" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        },
        "sex" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        }
      }
    }
  }
}

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

String(text、keyword)
text:
text類型被用來(lái)索引長(zhǎng)文本涮帘,在建立索引前會(huì)對(duì)這些文本進(jìn)行分詞拼苍,轉(zhuǎn)化為詞的組合,建立索引调缨。允許es來(lái)檢索這些詞語(yǔ)疮鲫。text類型不能用來(lái)排序和聚合。

keyword:
不需要進(jìn)行分詞弦叶】》福可以被原來(lái)檢索過(guò)濾,排序和聚合伤哺。keyword類型字段只能用本身來(lái)進(jìn)行檢索燕侠。

數(shù)字類型:long者祖、integer、short绢彤、byte七问、double、float
日期類型:date
布爾類型:boolean
二進(jìn)制: binary


2. 復(fù)雜數(shù)據(jù)類型
  • 數(shù)組類型:不需要專門(mén)指定數(shù)組元素的type
    • 字符型數(shù)組:["one" , "two"]
    • 整型數(shù)組:[1 , 2, 3]
    • 數(shù)組型數(shù)組:[1 , [2, 3]] 等價(jià)于 [1, 2, 3]
    • 對(duì)象數(shù)組:[{"name" : "xiaochao", "age":22},{"name" : "xiaoyi", "age":20}]

對(duì)象類型(object datatype):_ object _ 用于單個(gè)json對(duì)象
嵌套類型(nested datatype):_ nested _ 用于對(duì)象數(shù)組


3. 地理位置類型(Geo datatypes)

地理位置類型(Geo-point datatype):_ geo-point _ 用于經(jīng)緯度坐標(biāo)
地理位置類型(Geo-shape datatype):_ geo-shape _ 用于類似多邊形的復(fù)雜形狀


1. 創(chuàng)建不同的基本類型字段文檔
#老版本在索引后還有一級(jí)type
#POST /myindex/article/1
POST /myindex/_doc/article1
{
  "post_date":"2019-05-10",  //注意,日期只能是年-月-日茫舶,不能有時(shí)分秒
  "tile":"java",
  "content":"java is the best language",
  "id":119,
  "test":["hello","world"]
}
POST /myindex/_doc/article2
{
  "post_date":"2019-06-10",  //注意,日期只能是年-月-日械巡,不能有時(shí)分秒
  "tile":"html",
  "content":"I like html",
  "id":120,
  "test":["html","good"]
}
POST /myindex/_doc/article3
{
  "post_date":"2019-06-15",  //注意,日期只能是年-月-日,不能有時(shí)分秒
  "tile":"es",
  "content":"es is a new tool",
  "id":121,
  "test":["elasticsearch","very good"]
}
2. 通過(guò)映射 _mapping 查看數(shù)據(jù)類型
#老版本: GET /索引/type/_mapping
GET /myindex/_mapping
{
  "myindex" : {
    "mappings" : {
      "properties" : {
        "content" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        },
        "id" : {
          "type" : "long"
        },
        "post_date" : {
          "type" : "date"
        },
        "test" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        },
        "tile" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        }
      }
    }
  }
}
3. 通過(guò) _search 查看索引下的所有文檔
//
#老版本: GET /索引/type/_search
GET /myindex/_search
{
  "took" : 4,  #查詢耗時(shí)4毫秒
  "timed_out" : false,  # 是否超時(shí)
  "_shards" : {
    "total" : 1,    #分片數(shù)
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 3,
      "relation" : "eq"
    },
    "max_score" : 1.0,
    "hits" : [
      {
        "_index" : "myindex",
        "_type" : "_doc",
        "_id" : "article1",
        "_score" : 1.0,    # 查出來(lái)的文檔和查詢條件的匹配度
        "_source" : {
          "post_date" : "2019-05-10",
          "tile" : "java",
          "content" : "java is the best language",
          "id" : 119,
          "test" : [
            "hello",
            "world"
          ]
        }
      },
      {
        "_index" : "myindex",
        "_type" : "_doc",
        "_id" : "article2",
        "_score" : 1.0,  # 查出來(lái)的文檔和查詢條件的匹配度
        "_source" : {
          "post_date" : "2019-06-10",
          "tile" : "html",
          "content" : "I like html",
          "id" : 120,
          "test" : [
            "html",
            "good"
          ]
        }
      },
      {
        "_index" : "myindex",
        "_type" : "_doc",
        "_id" : "article3",
        "_score" : 1.0,  # 查出來(lái)的文檔和查詢條件的匹配度
        "_source" : {
          "post_date" : "2019-06-15",
          "tile" : "es",
          "content" : "es is a new tool",
          "id" : 121,
          "test" : [
            "elasticsearch",
            "very good"
          ]
        }
      }
    ]
  }
}
4. 按條件檢索:_search?q=column:val
//按條件檢索
#查不到數(shù)據(jù)奇适,因?yàn)闆](méi)有對(duì)日期類型數(shù)據(jù)進(jìn)行分詞
GET /myindex/_search?q=post_date:2019
#能查出數(shù)據(jù)
GET /myindex/_search?q=post_date:2019-06-15
#能查出數(shù)據(jù)坟比,因?yàn)閏ontent是text類型,有進(jìn)行分詞,排序
GET /myindex/_search?q=content:html&sort=post_date:desc
5. object類型及底層存儲(chǔ)格式
//
PUT /lib5/_doc/person1
{
  "name":"Tom",
  "age":25,
  "birthday":"1985-12-12",
  "address":{
    "country":"china",
    "province":"guangdong",
    "city":"shenzhen"
  }
}
GET /lib5/_mapping
#底層存儲(chǔ)格式
{
  "name":["Tom"],
  "age":[25],
  "birthday":["1985-12-12"],
  "address.country":["china"],
  "address.province":["guangdong"],
  "address.city":["shenzhen"]
  }
}
PUT /lib5/_doc/persons1
{
  "persons":[
      {"name":"lisi","age":27},
      {"name":"wangwu","age":26},
      {"name":"zhaoliu","age":23}
    ]
}
GET /lib5/_mapping
#底層存儲(chǔ)
{
  "persons.name":["lisi","wangwu","zhaoliu"],
  "persons.age"[27,26,23]
}
6. 手動(dòng)創(chuàng)建mapping
//手動(dòng)創(chuàng)建mapping
DELETE lib5
#手動(dòng)創(chuàng)建mapping
PUT /lib5
{
  "settings": {
    "number_of_shards": 3,
    "number_of_replicas": 0
  },
  "mappings": {
    "properties": {
      "age" : {"type" : "long"},
      "birthday" : {"type" : "date","index": false},  #不希望建立倒排索引
      "name" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        },
        "content":{"type":"text","analyzer": "standard"},
        "price":{"type": "double"},
        "number":{"type": "integer"}
    }
  }
}
GET /lib5/_mapping
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末嚷往,一起剝皮案震驚了整個(gè)濱河市葛账,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌皮仁,老刑警劉巖籍琳,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異贷祈,居然都是意外死亡趋急,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)势誊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)呜达,“玉大人,你說(shuō)我怎么就攤上這事粟耻〔榻” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵挤忙,是天一觀的道長(zhǎng)霜威。 經(jīng)常有香客問(wèn)我,道長(zhǎng)册烈,這世上最難降的妖魔是什么戈泼? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮赏僧,結(jié)果婚禮上大猛,老公的妹妹穿的比我還像新娘。我一直安慰自己淀零,他們只是感情好胎署,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著窑滞,像睡著了一般琼牧。 火紅的嫁衣襯著肌膚如雪恢筝。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,727評(píng)論 1 305
  • 那天巨坊,我揣著相機(jī)與錄音撬槽,去河邊找鬼。 笑死趾撵,一個(gè)胖子當(dāng)著我的面吹牛侄柔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播占调,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼暂题,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了究珊?” 一聲冷哼從身側(cè)響起薪者,我...
    開(kāi)封第一講書(shū)人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎剿涮,沒(méi)想到半個(gè)月后言津,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡取试,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年悬槽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瞬浓。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡初婆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出猿棉,到底是詐尸還是另有隱情磅叛,我是刑警寧澤,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布铺根,位于F島的核電站宪躯,受9級(jí)特大地震影響乔宿,放射性物質(zhì)發(fā)生泄漏位迂。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一详瑞、第九天 我趴在偏房一處隱蔽的房頂上張望掂林。 院中可真熱鬧,春花似錦坝橡、人聲如沸泻帮。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)锣杂。三九已至脂倦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間元莫,已是汗流浹背赖阻。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留踱蠢,地道東北人火欧。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像茎截,于是被迫代替她去往敵國(guó)和親苇侵。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355

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

  • Mapping 類似于數(shù)據(jù)庫(kù)中的表結(jié)構(gòu)定義企锌,主要作用如下: 定義Index下字段名(Field Name) 定義字...
    小旋鋒的簡(jiǎn)書(shū)閱讀 18,070評(píng)論 0 14
  • [TOC] 索引是映射類型的容器榆浓。ES的索引中存儲(chǔ)數(shù)據(jù)和索引(反向索引)。索引實(shí)質(zhì)上只是邏輯單元霎俩,實(shí)際的存儲(chǔ)單元是...
    0x70e8閱讀 208評(píng)論 0 0
  • mapping是類似于數(shù)據(jù)庫(kù)中的表結(jié)構(gòu)定義哀军,主要作用如下: 定義index下的字段名定義字段類型,比如數(shù)值型打却、浮點(diǎn)...
    Grey____閱讀 2,272評(píng)論 0 0
  • 1. 啥是映射 ??ES中的映射(Mapping)實(shí)質(zhì)上就是對(duì)文檔對(duì)象結(jié)構(gòu)的定義杉适,也即對(duì)文檔中各元素的描述。...
    簡(jiǎn)單是美美閱讀 1,705評(píng)論 0 51
  • 第3章 映射 映射是定義存儲(chǔ)和索引的文檔類型以及字段的過(guò)程柳击。索引中的每一個(gè)文檔都有一個(gè)類型猿推,每種類型都有它自己的映...
    MR_ChanHwang閱讀 2,306評(píng)論 0 1