elasticsearc之mapping的介绍

简介:

    为了能够把日期字段处理成日期,把数字字段处理成数字,把字符串字段处理成全文本(Full-text)或精确的字符串值,Elasticsearch需要知道每个字段里面都包含了什么类型。这些类型和字段的信息存储(包含)在映射(mapping)中。

   

Elasticsearch支持以下简单字段类型:

类型 表示的数据类型
String string
Whole number byteshortintegerlong
Floating point floatdouble
Boolean boolean
Date date

 查看索引的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"
           }
         }
       }
     }
   }
}

原创地址:http://irow10.blog.51cto.com/2425361/1851001

上面的mapping中我们可以看到这个索引中有三个变量,分别是date类型,long类型和string类型

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

其中string类型的字段是默认的,考虑到包含全文本,它们的值在索引前要经过分析器分析,并且在全文搜索此字段前要把查询语句做分析处理。也就是说只要定义为string的字段默认会按照一个规则拆分字段。如:hello100 会拆分成 hello  100两个字段。汉字会拆成一个个的。这样在画图是就尴尬了!

下图是elasticsearch中head插件查询到的数据

wKioL1fSJSLBGdX6AAAnb89QWw0822.png

windows 8.1这个字段就是上面mapping对应的brower。类型是string。

我们在kibana的setting查看下site_test各个字段的信息

wKiom1fSJaqCXB2tAAApI6lelzM567.png

string类型的brower在analyzed(分析)这选项中打勾了!

现在我们用kibana画图试试看看会不会有什么异常

wKiom1fSJjzS1y7TAAAhbIwKbdc335.png怎么windows和8.1分成两个字段画图了,这不是我们想要的结果。那该如何解决呢?

自定义mapping

因为重新更改一个索引的mapping,必须新建索引。

先新建一个site_site索引

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

把修改好的mapping放入一个文件类: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字段额外加个属性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都定义好了 然后在导入数据就不会出现分词的情况!

备注:如果有多个_type,定义一个就好,其他的会按照定义好的格式去自己扩建mapping。

当然我们也可以把上面两步做到一步到位。如下:

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

上面这条命令能完成建立索引和mapping。



本文转自 irow10 51CTO博客,原文链接:http://blog.51cto.com/irow10/1851001,如需转载请自行联系原作者

相关文章
|
C语言 Perl 存储
优化求解器之MPS文件的格式简介
在使用MindOpt优化求解器解决实际问题时,其中重要的一环在于如何建立优化模型,以及存储优化模型以便于作为求解器的输入文件。存储优化模型的文件,其关键在于定义一种清晰的格式,用来说明优化模型的数学结构和相关的数据。接下来我们将发布一系列文章,对常见的MPS/LP等格式的模型文件和命名规范进行简要的介绍。
优化求解器之MPS文件的格式简介
|
Linux 网络架构
通过route , tracert , traceroute 查看本地路由配置及访问ip或域名时经过的路由信息
通过route , tracert , traceroute 查看本地路由配置及访问ip或域名时经过的路由信息
2634 2
|
7月前
|
数据安全/隐私保护 Docker Windows
DeepSeek-R1+对话页面本地部署保姆级教程
DeepSeek-R1+对话页面本地部署保姆级教程
953 14
|
算法 API 图形学
【Qt 学习笔记】QWidget的geometry属性及window frame的影响
【Qt 学习笔记】QWidget的geometry属性及window frame的影响
866 2
|
云安全 人工智能 运维
阿里云认证有哪几种?考哪个比较好?
现如今很多人为了获得更好的岗位和待遇,选择考取一份阿里云认证证书,它是国内ICT行业最具含金量的证书,获得后,不仅能进入阿里云这个国内最大的云企业,还能被阿里云的各大合作商 优先录取。
2347 0
阿里云认证有哪几种?考哪个比较好?
|
弹性计算 容灾
阿里云服务器可用区怎么选?可用区可以切换更改吗?
阿里云服务器可用区同地域下电力和网络相互独立的区域,可用区之间可以做到故障隔离,云服务器创建后可用区不可以切换或更改
2511 0
阿里云服务器可用区怎么选?可用区可以切换更改吗?
|
Java 调度
Java中的Lock接口
Java中的Lock接口
205 0
WM
|
弹性计算 Ubuntu 安全
个人和企业员工用户视角下无影云电脑上手有感
有使用阿里云桌面访问的经验,有使用阿里云ECS的经验,当然也有使用个人及办公电脑的经验,包括macbook、ThinkPad、台式机等,接下来谈一下上手使用无影云电脑的感受。
WM
1809 0
个人和企业员工用户视角下无影云电脑上手有感
|
机器学习/深度学习 编解码 达摩院
绘本生产制作与多渠道多端消费
互联网时代,儿童阅读市场日益渴求内容呈现形态的数字化、多元化,儿童读物原始的线 下实体出版生产模式,已不满足市场需求。市面上已有不少团队专门做数字化绘本生产,然而 投入成本巨大,我们通过实际的少儿绘本业务做切入口,进行了儿童阅读内容的跨媒介生产、 分发和消费的全链路探索。
绘本生产制作与多渠道多端消费
Foo
|
监控 数据可视化 Linux
快!5分钟快速完成监控系统搭建之实践篇
监控告警系统是每一家企业都需要的系统。系统的监控运维告警可以帮助企业快速发现系统故障,定位故障和处理故障,对企业业务稳定性起到至关重要的作用。业务监控系统可以实时进行业务告警,进行业务趋势的分析和判断,对于数据化运营起到重要的帮助。
Foo
10930 0