设为首页 收藏本站
查看: 1441|回复: 0

[经验分享] elasticsearc之mapping的介绍

[复制链接]

尚未签到

发表于 2019-1-29 11:58:41 | 显示全部楼层 |阅读模式
      为了能够把日期字段处理成日期,把数字字段处理成数字,把字符串字段处理成全文本(Full-text)或精确的字符串值,Elasticsearch需要知道每个字段里面都包含了什么类型。这些类型和字段的信息存储(包含)在映射(mapping)中。
     
Elasticsearch支持以下简单字段类型:
类型表示的数据类型StringstringWhole numberbyte, short, integer, longFloating pointfloat, doubleBooleanbooleanDatedate
   查看索引的mapping

  [root@ELKServer es]# curl -GET "http://192.168.10.49:9200/site_test/test/_mapping"
{
"site_test":
     {
"mappings":
      {
  "test":
       {
   "properties":
        {
        "@timestamp":
           {
              "type":"date",
              "format":"strict_date_optional_time||epoch_millis"
           },
         "count":
          {
              "type":"long"
           },
          "brower":
          {
          "type":"string"
          }
        }
      }
    }
  }
}  原创地址:http://irow10.blog.运维网.com/2425361/1851001
  上面的mapping中我们可以看到这个索引中有三个变量,分别是date类型,long类型和string类型
  我们也可以用其他方式查看mapping。用head插件查看索引的索引信息
  其中string类型的字段是默认的,考虑到包含全文本,它们的值在索引前要经过分析器分析,并且在全文搜索此字段前要把查询语句做分析处理。也就是说只要定义为string的字段默认会按照一个规则拆分字段。如:hello100 会拆分成 hello  100两个字段。汉字会拆成一个个的。这样在画图是就尴尬了!
  下图是elasticsearch中head插件查询到的数据


  windows 8.1这个字段就是上面mapping对应的brower。类型是string。
  我们在kibana的setting查看下site_test各个字段的信息

  string类型的brower在analyzed(分析)这选项中打勾了!
  现在我们用kibana画图试试看看会不会有什么异常
怎么windows和8.1分成两个字段画图了,这不是我们想要的结果。那该如何解决呢?

  自定义mapping
  因为重新更改一个索引的mapping,必须新建索引。
  先新建一个site_site索引
[root@ELKServer es]# curl -XPOST http://192.168.10.49:9200/site_test
{"acknowledged":true}  把修改好的mapping放入一个文件类:mapping
{
  "test":
       {
   "properties":
        {
         "@timestamp":
               {
              "type":"date",
              "format":"strict_date_optional_time||epoch_millis"
                },
          "count":
                {
               "type":"long"
                },
           "brower":
                {
               "type":"string",
               "index": "not_analyzed"
                }
          }
      }
  }

  对brower字段额外加个属性not_analyzed(不分词)!

[root@ELKServer es]# curl -XPOST "http://192.168.10.49:9200/site_test/test/_mapping?pretty" -d '@mapping'
{
  "acknowledged" : true
}  这样就把索引和mapping都定义好了 然后在导入数据就不会出现分词的情况!
  备注:如果有多个_type,定义一个就好,其他的会按照定义好的格式去自己扩建mapping。
  当然我们也可以把上面两步做到一步到位。如下:
  curl -XPUT 'http://192.168.10.49:9200/site_test' -d '@mapping'
  上面这条命令能完成建立索引和mapping。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-669149-1-1.html 上篇帖子: Elastic+logstash+filebeat做Nginx日志分析 下篇帖子: elasticsearch5.x安装中一些问题的解决办法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表