Elasticsearch映射

2024-10-10 12:52:52 浏览数 (5)

elasticsearch映射相当于mysql中的字段的类型。

映射类型

String类型

text:可分词,不可参与聚合 keyword:不可分词,数据会作为完整字段进行匹配,可以参与聚合

Numerical数值类型

基本数据类型:longintergershortbytedoublefloathalf_float 浮点数的高精度类型:scaled_float 需要指定一个精度因子,比如10或100。elasticsearch会把真实值乘以这个因子后存储,取出时再还原。

Date日期类型

Elasticsearch可以对日期格式化为字符串存储,但是建议我们存储为毫秒值,存储为long,节省空间。

空间索引类型

geo_point:地理信息点类型 geo_shape:地理信息多点,线、面等类型

创建映射

以创建一个poi的索引类型为例,通过Restful方式创建:

代码语言:javascript复制
PUT /poi/_mapping
{
  "properties" : {
    "id" : {
      "type" : "long"
    },
    "category" : {
      "type" : "keyword"
    },
    "name" : {
      "type" : "text"
    },
    "address" : {
      "type" : "text",
      "index": true,
      "analyzer": "ik_max_word",    //指定分词
      "search_analyzer": "ik_smart"  //指定搜索分词
    },
    "location" : {
      "type" : "geo_point"
    },
    "remark" : {
      "type" : "text",
      "index" : false
    },
    "create_time" : {
      "type" : "long"
    }
  }
}

当然也可以在创建索引的同时指定映射:

代码语言:javascript复制
PUT /aoi
{
  "settings":{
   },
  "mappings":{
     "properties" : {}
  }
}

查看映射

通过Restful方式查看映射结果

代码语言:javascript复制
GET /poi/_mapping

0 人点赞