elasticsearch映射mapping

作者: 鲁智深 分类: java 发布时间: 2018-05-12 16:08

映射是存储在索引中的文档的大纲,它定义数据类型。对于一个搜索引擎来说,光光有数据是不够的用的,映射是elastisearch对数据进行区分的一个重要方式。

elastisearch会默认创建映射,根据json源数据进行映射。下面说明elastisearch的内置类型

sting类型:text,keyword
数字类型:long,integer,short,byte,double,float
日期类型:date
bool类型:boolean
binary类型:binary 二进制类型
复杂类型:object,nested
geo类型:geo-point,geo-shape 地理位置
专业类型:ip,competition

常用的类型

常用类型

常用类型

我们来创建自定义映射的索引

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
28
29
30
31
32
33
34
35
36
#创建索引
PUT jobbole
{
  "mappings": {
    "job": {
      "properties": {
        "title":{
          "type": "text"
        },
        "salary_min":{
          "type": "integer"
        },
        "city":{
          "type": "keyword"
        },
        "company":{
          "properties": {
            "name":{
              "type":"text"
            },
            "company_addr":{
              "type":"text"
            }
          }
        },
        "publish_date":{
          "type": "date",
          "format": "yyyy-mm-dd"
        },
        "comments":{
          "type": "integer"
        }
      }
    }
  }
}

插入一条数据试试

1
2
3
4
5
6
7
8
9
10
11
12
POST jobbole/job/
{
  "title":"python分布式爬虫开发",
  "salary_min":1500,
  "city":"苏州",
  "company":{
    "name":"中国移动",
    "company_addr":"苏州园区"
  },
  "publish_date":"2017-4-16",
  "comments":15
}

获取索引方式

1
2
GET jobbole/_mapping/job
GET _all/_mapping/job

索引一旦创建是不能修改的,如果要修改,必须删除现有索引,在导入数据,这样就增大了工作量,而且数据量非常大的时候就非常困难,所以创建索引的时候一定要想好了在创建。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注