ElasticSearch映射Mapping

1.1 什么是映射

(1) 映射(mapping): 定义index的元数据, 指定要索引并存储的文档的字段类型.

也就是说映射决定了Elasticsearch在建立倒排索引、进行检索时对文档采取的相关策略, 如数字类型、日期类型、文本类型等等.

需要注意的是: 检索时用到的分析策略, 要和建立索引时的分析策略相同, 否则将导致数据不准确.

(2) ES对不同的类型有不同的存储和检索策略.

① 比如: 对full text型的数据类型(如text), 在索引时, 会经过各类处理 (包括分词、normalization(时态转换、同义词转换、大小写转换)等处理), 才会建立到索引数据中.
② 再比如: 对exact value(如date), 在索引的分词阶段, 会将整个value作为一个关键词建立到倒排索引中.

1.2 映射的组成

每个index都有一 (至多) 个type, 每个type对应一个mapping.

在Elasticsearch 6.X版本开始, 1个index只能有1个type.

每个mapping都由下述部分组成:

① 元字段: _index_type_id 和 _source.
② field/properties(字段或属性): 同一index中, 同名的field的映射配置必须相同

a) 因为index是根据_type元字段来区分type的, 也就是存储的每个文档中都有_type等元字段, 如果相同名称的field的映射(_type字段的值)不同, Elasticsearch在解析时就会出现冲突.

b) 这些参数可以例外: copy_to、dynamic、enabled、ignore_above、include_in_all.

关于type的处理方法, 可以参考博客: ES XX - Elasticsearch对type的处理(type的底层结构).

1.3 元字段

每个文档都有与之关联的元数据 —— ES内部为所有的文档配备的field, 都是以下划线_开头的内置字段.

具体的内容请参考博文 ES XX - Elasticsearch的元字段 中详细讲解.

1.4 字段的类型

Elasticsearch中每个field都对应一至多个数据类型.

详细的内容请参考博文 ES XX - Elasticsearch中字段的类型 中详细讲解.

 

什么是Mapping映射?
映射:创建索引的时候,可以预先定义字段的类型以及相关属性。
作用:这样会让索引建立得更加的细致和完善!
分类:静态映射和动态映射

ElasticSearch在做字段映射的时候可以定义的类型

映射的属性方法

除了定义字段的类型,还可以给字段定义相关的属性

 

 

 

 创建mapping

(1) 必读说明:

① 创建mapping时, 可以指定每个field是否需要:

索 引: "index": true —— 默认配置
不索引: "index": false

② mapping root object:

每个type对应的mapping的JSON串, 包括properties, metadata(_id, _source, _type) , settings(analyzer) , 其他settings(如include_in_all)

(2) 创建mapping的示例:

 更新mapping

(1) 必读说明:

  • 映射一旦创建完成, 就不允许修改:

    —— Elasticsearch对文档的分析、存储、检索等过程, 都是严格按照mapping中的配置进行的. 如果允许后期修改mapping, 在检索时对索引的处理将存在不一致的情况, 导致数据检索行为不准确.

  • 只能在创建index的时候手动配置mapping, 或者新增field mapping, 但是不能update field mapping.

(2) 更新mapping出现异常:

 

 

(3) 过期提示说明 —— 这里使用的是Elasticsearch 6.8.6版本:

① 是否索引的API已经做了修改, 若使用"analyzed" | "not_analyzed" | "yes" | "no"等, 将抛出如下警告:

#! Deprecation: Expected a boolean [true/false] for property [index] but got [not_analyzed]
#! Deprecation: Expected a boolean [true/false] for property [index] but got [no]

② _all元字段也将在7.0版本中移除, 它建议我们使用copy_to定制自己的all field:

#! Deprecation: [_all] is deprecated in 6.0+ and will be removed in 7.0. As a replacement, you can use [copy_to] on mapping fields to create your own catch all field.

在6.8.6版本中我们使用true或false

字段类型的设置,在6.8.6版本中使用text文本类型,不能使用string在过去早期的版本可以使用

 

 所以我们新增一个索引test

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/576634.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习笔记(十)——Logistic Function AND Softmax Function

一、说明 在逻辑回归和一些机器学习算法中, Logistic函数和Softmax函数是常用到的,今天就先讨论下这两个函数。 二、Logistic Function Logistic function一般用于二分类问题,它的函数定义如下: f(x)11e−x(1)f(x) = \frac{1}{1…

kibana客户端工具操作ElasticSearch(增删改查三)

之前一直我们讲的是添加文档和查看文档,下面我们看下怎么修改文档, 第一种方式PUT 覆盖原来的文档 修改文档(覆盖原来的): PUT /lib/user/1 {"first_name":"Jane","last_name":"…

Word2Vec学习笔记(三)

三、Hierarchical Softmax模型 3.1 词向量 词向量目前常用的有2种表示方法,One-hot representation 和 distributed representation. 词向量,顾名思义就是将一个词表示为向量的形式,一个词,怎么可以将其表现为向量呢?…

Word2Vec学习笔记(三)续

三、(续)Skip-gram模型介绍 Skip-gram模型并不是和CBOW模型相反的,它们的目的都是计算出词的向量,只不过在作者的论文中给出的图看样子是反的而已。Skip-gram模型是用每个当前词去预测一定范围内除当前词之外前后的词。同样的&…

ElasticSearch关于映射mapping介绍

#首先我们还是先增加几个文档 PUT /myindex/article/1 {"post_date": "2020-03-14","title": "Java","content": "java is the best language","author_id": 119 }PUT /myindex/article/2 {"post…

ElasticSearch的Object数据类型

上一篇mapping文章我们知道数字类型和日期类型要精确查找,以及mapping的两个重要的作用。 所以创建索引的时候,是不是可以预先定义字段的类型以及相关属性,这样就能够把日期字段处理成日期,把数字字段处理成数字,把字符串字段处理…

Word2Vec学习笔记(四)——Negative Sampling 模型

前面讲了Hierarchical softmax 模型,现在来说说Negative Sampling 模型的CBOW和Skip-gram的原理。它相对于Hierarchical softmax 模型来说,不再采用huffman树,这样可以大幅提高性能。 一、Negative Sampling 在负采样中,对于给定…

HDU1071_数学几何

题目大意: 给你三个点p1,p2,p3,p1是最高点,然后算出面积。 解题思路: 我的解题思路有点水,就是直接求抛物线系数,直线系数,最后求积分搞定e.尽量少用中间变量吧。代码有点丑。虽然这道题目是1a,…

ElasticSearch vs. Solr

为何日志服务商Loggly选择ElasticSearch而非Solr. 原文链接: http://loggly.wpengine.com/bl... 在Gen2产品的早期阶段, 我们事实上是失败的, 这促使我们重新审视我们现有的技术栈. 我们仔细分析系统中的每个独立的组件,并记录下来, 当然其中也包括构成我们核心功能的搜索引擎技…

android 工程结构,它到底是怎么运行的。

为了帮助理解,我决定先上传一个工程截图,这个是我做的一个小作业,3、4个小时完成,没什么含金量,就是交差用的,这里给大家做个模板吧。 我把一个工程分6个部分,如左面的图所示,然后…

从FLC中学习的设计模式系列-创建型模式(3)-工厂方法

工厂方法是一组方法, 他们针对不同条件返回不同的类实例,这些类一般有共同的父类。 工厂方法模式 来自: http://zh.wikipedia.org/wiki/工厂方法模式 工厂方法模式 是一种面向对象的设计模式。通过调用不同的方法返回需要的类,而不…

HTML简单实例加表单的显示效果

HTML可以说是一种十分简单的标记语言,但是对于Web开发还是必不可少的,所以对HTML的标记进行适当的了解 还是十分有必要的。下面我们来演示一下基本的HTML效果和一些简单的标签,以及在表单界面的各种提交方式。 首先是HTML的常用简单标签。 &l…

机器学习笔记(十三)——隐马尔科夫模型

一、隐马尔科夫模型 在马尔科夫模型中,每一个状态代表了一个可以观察的事件,所以,马尔科夫模型有时称为可视马尔科夫模型(visible Markov model,VMM),这在某种程度上限制了模型的适应性。在隐马…

elasticsearch基本查询三(英文分词)match查询

#match查询 #match query知道分词器的存在,会对filed进行分词操作, 然后再查询 GET /ib3/user/_search { "query":{ "match":{ "name": "zhaoliu" }} } GET /lib3/user/_search { "query":{ "match"…

solr 3.5 配置及应用(二)

在 solr 3.5 配置及应用(一) 讲过一了 solr 3.5的详细配置,本节我们讲利用solr 的客户端调用solr的应用了! 一、利用SolrJ操作solr API 使用SolrJ操作Solr会比利用httpClient来操作Solr要简单。SolrJ是封装了httpClient方法,来操作solr的API的…

elasticsearch控制返回字段查询三(英文分词)match查询

#_source指定查询返回的字段信息 #_source指定查询返回的字段信息 GET /lib3/user/_search {"from":0, "size": 2, "_source": ["address" , "name"] ,"query": {"match": {"interests": &…

通过日志恢复MSSQL数据例子

这段时间看了关于在SQL server 中通过日志和时间点来恢复数据。也看了一些网上的例子,看如何通过日志来恢复数据。 前提条件: 数据库的故障恢复改为非简单模式,去掉自动关闭和自动收缩两个选项 如果是简单模式: 类似下面的语…

ElasticSearch通配符 * 查询(英文检索)

#如果你要查询的字段信息记得不太清楚, 我们也可以使用通配符 * GET /lib3/user/_search {"from":0, "size": 2,"_source": {"includes": "addr*","excludes": ["name" , "bir*"]},"…

(转)CDN是如何工作的?

转载自:CDN是如何工作的? CDN是互联网中使用较频繁的一种技术。你也许常听人说:“我们的网站使用了CDN技术”,但可能他们对CDN的了解并不多,也许只局限于--用了以后网站访问速度会变快。 其实,CDN的原理非常…

机器学习笔记(十七)——EM算法的推导

一、Jensen 不等式 在EM算法的推导过程中,用到了数学上的Jensen不等式,这里先来介绍一下。 若Ω是有限集合{x1,x2,…,xn}{x1,x2,…,xn},而μ是Ω上的正规计数测度,则不等式的一般形式可以简单地用和式表示: φ(∑i1ng(xi)λi)≤…