【ElasticSearch】:Mapping相关

  • Mapping

  类似数据库中的表结构定义,主要作用如下:

  1.   定义Index下的字段名(Field Name)。
  2.   定义字段类型,例如数值型、字符串型、布尔型等。
  3.   定义倒排索引相关配置,比如是否索引、记录position等。

  

  • 查看一个Index的Mapping的API

  例如查看index为test_index的mapping,使用_mapping,查询结果中:

  doc是这个index的type,忽略,ES6.X将废弃。

  关注properties中的内容,每个字段及其字段类型(type) 。

  

  • 自定义一个Index的Mapping的API

  Mapping中的字段类型一旦设定后,禁止直接修改,因为底层基于Lucene实现的倒排索引生成后不允许修改。如果要修改,需要重建新的索引,然后做reindex操作。

  

  • dynamic参数

  index级别的设置。

  - true,默认值,允许自动新增字段

  - false,不允许自动新增字段,新增字段的document可正常写入ES,但无法对新增字段查询

  - strict,不允许自动新增字段,新增字段的document写入ES直接报错。

  • copy_to

  字段级别的设置。

  可以将多个已有字段都copy_to到 1个新字段,这样新生成的字段不占用存储,且方便查询。

  

  • index

  字段级别的设置。

  设置该字段是否可以被搜索,一般敏感信息字段设置为false,还可以节省倒排索引存储空间。

  

  • index_options

  字段级别的设置。

  设置倒排索引记录的内容。  

  

  

  

  • null_value

  字段级别的设置。

  该字段录入ES的字段值为null时,可设置默认值。  

  

  • dynamic_date_formats

  字段级别的设置。

  指定dynamic_date_formats可以让入库日期为date类型,否则有可能会是text类型。

  

  • 动态模板Dynamic Mapping

  目的:通用配置形成模板,简化mapping配置,减少配置工作量。  

  

  

  生产实践举例:

  1.所有字符串类型默认都设置为keyword,即默认不分词,节约资源。

  

  2.以message开头的字段设置为text,需要建立倒排索引分词检索。

  

  3.double类型设定为float,节省存储空间。

  

  4.支持设置多个动态模板,是从上至下执行的,只要匹配到就结束匹配。

  

  • 索引模板Index Template

  目的:类似于数据库的建表和定义表结构语句,固化索引创建操作,新建索引时自动应用预先设定的动态模板和mappings。

  设置index_patterns参数,支持模式匹配索引。

  支持配置多个索引模板,order大的优先级高。

  

  查看和删除索引模板

  

  

原文地址:https://www.cnblogs.com/wwcom123/p/10420521.html

时间: 2024-07-30 18:06:12

【ElasticSearch】:Mapping相关的相关文章

使用MyBatis-Gererator自动生成Dao.Model.Mapping相关文件

一.在MyEclipse中使用Maven项目下使用MyBatis-Gererator自动生成Dao.Model.Mapping相关文件 1.关于Mybatis-Generator的下载可以到这个地址:https://github.com/mybatis/generator/releases 2.查找能够匹配maven的下载配置文件,将匹配的相关文件配置到maven项目下的pom.xml文件中 3.复制以下二中的generatorConfig.xml文件,到myEclipse中创建的maven项目

elasticsearch mapping

es的mapping设置很关键,mapping设置不到位可能导致索引重建.如何更好的设置mapping? 请看下面各个类型介绍^_^ core types 每一个JSON字段可以被映射到一个特定的核心类型.JSON本身已经为我们提供了一些输入,支持string, integer/long, float/double, boolean, and null. 下面的示例tweet的JSON文档将被用来解释核心类型: {    "tweet" {        "user"

使用Mybatis-Generator自动生成Dao、Model、Mapping相关文件

Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件,由于手动书写很容易出错,我们可以利用Mybatis-Generator来帮我们自动生成文件. 1.相关文件 1.在G盘新建一个文件夹,命名:generator(或者其他盘其他名字也可以,之所以用这个,是为了copy下面代码后,不用再做修改路径) 2.准备需要的jar包:mybatis-generator-core-1.3.2.jar.MySQL-connector-Java-5.1.34.jar(忽略

使用Mybatis-Generator自动生成Dao、Model、Mapping相关文件(转)

出处:http://www.cnblogs.com/lichenwei/p/4145696.html Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件,由于手动书写很容易出错,我们可以利用Mybatis-Generator来帮我们自动生成文件. 1.相关文件 关于Mybatis-Generator的下载可以到这个地址:https://github.com/mybatis/generator/releases 由于我使用的是Mysql数据库,这里需要在

Mybatis-Generator插件自动生成Dao、Model、Mapping相关文件

最近做项目,mapping 有点多而且容易写错,于是试着用了Mybatis-Generator 插件自动生成 dao, domain  mapping 文件.感觉还挺好用.把相关配置分享,一边以后做项目的时候直接拿来用.  我用的是eclipse Mybatis-Generator 插件. 环境:eclipse  Mars.2 插件:org.mybatis.generator.eclipse.site-1.3.5.201609070108 数据库jar:mysql-connector-java-

使用Mybatis-Generator自己主动生成Dao、Model、Mapping相关文件

准备工作: 1.数据库驱动程序 2.generatorConfig驱动,(下载地址:https://github.com/mybatis/generator/releases) 3.generatorConfig.xml配置文件.例如以下(注意:在执行的时候此文件里不能有凝视.): <?xml version="1.0" encoding="UTF-8"? > <!DOCTYPE generatorConfiguration PUBLIC &quo

Windows下ElasticSearch及相关插件的安装

(1)在官网下载ElasticSearch压缩包.这里我下载的是elasticsearch-1.7.1(下载地址:https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.1.zip). (2)选择电脑上的某个位置进行解压,这里我是放在了D:\elasticsearch-1.7.1. (3)进入bin文件夹.找到elasticsearch.bat文件,双击运行. 在bin的同级文件夹下会生成data和log

Elasticsearch 检索相关

1. 检索所有文档 GET bus/product/_search 2. term检索 term是代表完全匹配,也就是精确查询,搜索前不会再对搜索词进行分词,所以我们的搜索词必须是文档分词集合中的一个,如果没有安装分词插件,汉字分词按每个汉字来分. 查询不到内容: GET bus/product/_search { "query": { "term": { "producer": "公交" } } } producer中所有带

通过Java的Domain类构建ElasticSearch的mapping

通过给定一个Java的class类自行创建ElasticSearch的mapping Order的domain类 public class Order { public String system_id; public String finger_id; public String merchant_id; public Double tx_money; public String pay_date; public String payment_status; public Date settl