日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

elasticsearc之mapping的介绍

發(fā)布時(shí)間:2023/12/15 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 elasticsearc之mapping的介绍 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

? ? 為了能夠把日期字段處理成日期,把數(shù)字字段處理成數(shù)字,把字符串字段處理成全文本(Full-text)或精確的字符串值,Elasticsearch需要知道每個(gè)字段里面都包含了什么類型。這些類型和字段的信息存儲(chǔ)(包含)在映射(mapping)中。

? ?

Elasticsearch支持以下簡單字段類型:

類型表示的數(shù)據(jù)類型
Stringstring
Whole number byte,?short,?integer,?long
Floating point float,?double
Booleanboolean
Datedate

?查看索引的mapping

[root@ELKServer es]# curl -GET "http://192.168.10.49:9200/site_test/test/_mapping"

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 { "site_test": ?????{ ?"mappings": ??????{ ??"test": ???????{ ???"properties": ????????{ ????????"@timestamp": ???????????{ ??????????????"type":"date", ??????????????"format":"strict_date_optional_time||epoch_millis" ???????????}, ?????????"count": ??????????{ ??????????????"type":"long" ???????????}, ??????????"brower": ??????????{ ??????????"type":"string" ??????????} ????????} ??????} ????} ??} }

原創(chuàng)地址:http://irow10.blog.51cto.com/2425361/1851001

上面的mapping中我們可以看到這個(gè)索引中有三個(gè)變量,分別是date類型,long類型和string類型

我們也可以用其他方式查看mapping。用head插件查看索引的索引信息

其中string類型的字段是默認(rèn)的,考慮到包含全文本,它們的值在索引前要經(jīng)過分析器分析,并且在全文搜索此字段前要把查詢語句做分析處理。也就是說只要定義為string的字段默認(rèn)會(huì)按照一個(gè)規(guī)則拆分字段。如:hello100 會(huì)拆分成 hello ?100兩個(gè)字段。漢字會(huì)拆成一個(gè)個(gè)的。這樣在畫圖是就尷尬了!

下圖是elasticsearch中head插件查詢到的數(shù)據(jù)

windows 8.1這個(gè)字段就是上面mapping對應(yīng)的brower。類型是string。

我們在kibana的setting查看下site_test各個(gè)字段的信息

string類型的brower在analyzed(分析)這選項(xiàng)中打勾了!

現(xiàn)在我們用kibana畫圖試試看看會(huì)不會(huì)有什么異常

怎么windows和8.1分成兩個(gè)字段畫圖了,這不是我們想要的結(jié)果。那該如何解決呢?

自定義mapping

因?yàn)橹匦赂囊粋€(gè)索引的mapping,必須新建索引。

先新建一個(gè)site_site索引

1 2 [root@ELKServer?es]#?curl?-XPOST?http://192.168.10.49:9200/site_test {"acknowledged":true}

把修改好的mapping放入一個(gè)文件類:mapping

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 { ??"test": ???????{ ???"properties": ????????{ ?????????"@timestamp": ???????????????{ ??????????????"type":"date", ??????????????"format":"strict_date_optional_time||epoch_millis" ????????????????}, ??????????"count": ????????????????{ ???????????????"type":"long" ????????????????}, ???????????"brower": ????????????????{ ???????????????"type":"string", ???????????????"index":?"not_analyzed" ????????????????} ??????????} ??????} ??}


對brower字段額外加個(gè)屬性not_analyzed(不分詞)!

1 2 3 4 [root@ELKServer?es]#?curl?-XPOST?"http://192.168.10.49:9200/site_test/test/_mapping?pretty"?-d?'@mapping' { ??"acknowledged"?:?true }

這樣就把索引和mapping都定義好了 然后在導(dǎo)入數(shù)據(jù)就不會(huì)出現(xiàn)分詞的情況!

備注:如果有多個(gè)_type,定義一個(gè)就好,其他的會(huì)按照定義好的格式去自己擴(kuò)建mapping。

當(dāng)然我們也可以把上面兩步做到一步到位。如下:

curl -XPUT 'http://192.168.10.49:9200/site_test' -d '@mapping'

上面這條命令能完成建立索引和mapping。



本文轉(zhuǎn)自 irow10 51CTO博客,原文鏈接:http://blog.51cto.com/irow10/1851001,如需轉(zhuǎn)載請自行聯(lián)系原作者

總結(jié)

以上是生活随笔為你收集整理的elasticsearc之mapping的介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。