首页 > 其他分享 >Elasticsearch之-mapping 映射管理

Elasticsearch之-mapping 映射管理

时间:2024-04-09 11:44:53浏览次数:15  
标签:映射 text company mapping 索引 Elasticsearch type

目录

Elasticsearch之-mapping 映射管理

  • 在Elasticsearch 6.0.0或更高版本中创建的索引只包含一个mapping type。 在5.x中使用multiple mapping types创建的索引将继续像以前一样在Elasticsearch 6.x中运行。 Mapping types将在Elasticsearch 7.0.0中完全删除

一、映射介绍

  • 在创建索引的时候,可以预先定义字段的类型及相关属性

  • Es会根据Json数据源的基础类型,猜测你想要映射的字段,将输入的数据转变成可以搜索的索引项。

  • Mapping是我们自己定义的字段数据类型,同时告诉es如何索引数据及是否可以被搜索

  • 作用:会让索引建立的更加细致和完善

1.1 字段数据类型

string类型:text,keyword

数字类型:long,integer,short,byte,double,float

日期类型:date

布尔类型:boolean

binary类型:binary

复杂类型:object(实体,对象),nested(列表)

geo类型:geo-point,geo-shape(地理位置)

专业类型:ip,competion(搜索建议)

1.2 映射参数

属性 描述 适合类型
store 值为yes表示存储,no表示不存储,默认为yes all
index yes表示分析,no表示不分析,默认为true text
null_value 如果字段为空,可以设置一个默认值,比如"NA"(传过来为空,不能搜索,na可以搜索) all
analyzer 可以设置索引和搜索时用的分析器,默认使用的是standard分析器,还可以使用whitespace,simple。都是英文分析器 all
include_in_all 默认es为每个文档定义一个特殊域_all,它的作用是让每个字段都被搜索到,如果想让某个字段不被搜索到,可以设置为false all
format 时间格式字符串模式 date

二、创建索引时指定映射

  • elasticsearch会对text类型文档分析,取出词做倒排索引,keyword类型文档不会被分词,原样存储,原样匹配

  • 注意:mapping类型一旦确定,以后就不能修改了

2.1 6.x的版本写法

PUT books
{
  "mappings": {
    "book":{
      "properties":{
        "title":{
          "type":"text",
         	"analyzer": "ik_max_word"
        },
        "price":{
          "type":"integer"
        },
        "addr":{
          "type":"keyword"
        },
        "company":{
          "properties":{
            "name":{"type":"text"},
            "company_addr":{"type":"text"},
            "employee_count":{"type":"integer"}
          }
        },
        "publish_date":{"type":"date","format":"yyy-MM-dd"}
       
      }
    }
  }
}

2.2 7.x版本以后

PUT books
{
  "mappings": {
    "properties":{
      "title":{
        "type":"text",
        "analyzer": "ik_max_word"
      },
      "price":{
        "type":"integer"
      },
      "addr":{
        "type":"keyword"
      },
      "company":{
        "properties":{
          "name":{"type":"text"},
          "company_addr":{"type":"text"},
          "employee_count":{"type":"integer"}
        }
      },
      "publish_date":{"type":"date","format":"yyy-MM-dd"}
      
    }
    
  }
}

2.3 插入数据测试

# 测试数据1
PUT books/_doc/1
{
  "title":"大头儿子小偷爸爸",
  "price":100,  
  "addr":"北京天安门",
  "company":{
    "name":"我爱北京天安门",
    "company_addr":"我的家在东北松花江傻姑娘",
    "employee_count":10
  },
  "publish_date":"2019-08-19"
}
# 测试数据2
PUT books/_doc/2
{
  "title":"白雪公主和十个小矮人",
  "price":"99",  # 写字符串会自动转换
  "addr":"黑暗森里",
  "company":{
    "name":"我的家乡在上海",
    "company_addr":"朋友一生一起走",
    "employee_count":10
  },
  "publish_date":"2018-05-19"
}

三、查看索引

#查看books索引的mapping
GET books/_mapping
#获取所有的mapping
GET _all/_mapping

标签:映射,text,company,mapping,索引,Elasticsearch,type
From: https://www.cnblogs.com/Mcoming/p/18123617

相关文章

  • Elasticsearch之数据的增删查改(CURD)
    目录Elasticsearch之数据的增删查改(CURD)一、CURD之Create(增)二、CURD之Update(改)三、CURD之Delete(删)四、CURD之Retrieve(查)Elasticsearch之数据的增删查改(CURD)一、CURD之Create(增)注意:当执行PUT命令时,如果数据不存在,则新增该条数据,如果数据存在则修改该条数据(这种修改相当于删......
  • Elasticsearch 配置内置分析器(3)
    一.内置分析器(analyzer)内置分析器无需任何配置即可直接使用,也支持配置选项来更改其行为。下面示例,分别使用了自定义分析器与内置分析器PUTmy-index-000001{"settings":{"analysis":{"analyzer":{"std_english":{#自定义分析......
  • Elasticsearch 悬挂索引分析和自己的一点见解
    在Elasticsearch的实战中,悬挂索引是一个既常见又容易引起困扰的概念。今天,我将分享一次处理集群状态为RED,原因为DANGLING_INDEX_IMPORTED 的实战经验,深入探讨悬挂索引的定义、产生原因、管理方法,以及如何有效处理它们,确保读者能够明白并解决自己面临的问题。值得一提的是,......
  • 解决Docker端口映射后外部访问未开启的端口问题
    在使用Docker时,经常会遇到需要将容器内部的服务映射到宿主机上的端口,以便外部可以访问。但有时候会遇到这样的问题:即使宿主机上未开启对应的端口,外部依然可以通过这些端口直接访问到服务,这可能存在一定的安全隐患。本文将介绍如何解决这个问题。首先,让我们了解一下Docker端......
  • linux 环境下 elasticsearch 及 python 相关库的使用
    -elasticsearch是什么?elasticsearch简称es,是一个开源的分布式搜索引擎,可以用来实现搜索、日志统计、分析、系统监控等功能。-安装1、下载官网下载地址2、解压tarzxvfelasticsearch-8.13.0-linux-x86_64.tar.gz-C/usr/local/3、解决JDK依赖问题新版本的es压缩......
  • ubuntu下实现一个端口到另一个IP和端口的映射
    要在Ubuntu上实现一个端口到另一个IP地址和端口的映射,通常有几种方法。这里,我们将讨论两种常用的方法:使用iptables和使用SSH端口转发。方法1:使用iptablesiptables是Linux上用于配置防火墙的工具。它允许你根据指定的规则对进出网络数据包进行控制。首先,确保你已经......
  • elasticsearch-head的安装和使用
    一、elasticsearch-head插件介绍elasticsearch-head是elasticsearch的一款可视化工具,依赖于node.js,所以需要先安装node.js二、安装Node.js详情见文章nodejs安装和使用三、安装Grunt这一步可不做#Grunt是基于Node.js的项目构建工具。grunt作为一个前端构建工具,有资源......
  • Elasticsearch 配置与测试分析器 (2)
    一.配置文本分析器(Configuretextanalysis) 默认情况下,Elasticsearch使用standard分析器来进行文本分析,如果使用该分析器,则不用额外的配置。如果不满足,可以使用其它内置分析器,也可以创建自定义的分析器更好的控制,通常在生产实战中都是自定义分析器,方便更好扩展。 ......
  • Windows系统如何做端口映射?
    在网络通信中,端口映射是一项关键技术,允许将公共网络上的端口映射到私有网络上的特定设备或服务。对于Windows用户而言,端口映射为实现远程访问提供了便利。本文将探讨Windows端口映射及其应用。天联组网的优势天联组网是一项功能强大的服务,具有以下优势:无网络限制:天联组网......
  • Elasticsearch,使用scroll实现遍历(分页)查询
    为什么要使用scroll查询在使用es中,当某个index存贮的数据超过10000时,只能查询到10000的数据。因为index.max_result_window默认值是10000。并且使用游标查询可以在一次查询中获取大量文档,并且保持查询快照状态,允许用户多次检索数据而不影响其他并发请求。scroll查......