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_date": "2020-03-14" ,"title": "html","content": "I like html","author_id": 120
}
PUT /myindex/article/3
{"post_date": "2020-03-14" ,"title": "es","content": "Es is distributed document store" ,"author_id": 110
}

 

#查看es的文档映射mapping的数据结构
GET /myindex/article/_mapping

mapping数据结构如下: 

{"myindex" : {"mappings" : {"article" : {"properties" : {"author_ id" : {"type" : "long"},"content" : {"type" : "text","fields" : {"keyword" : {"type" : "keyword","ignore_above" : 256}}},"post_ _date" : {"type" : "date"},"post_ date" : {"type" : "text","fields" : {"keyword" : {"type" : "keyword","ignore_above" : 256}}},"title" : {"type" : "text","fields" : {"keyword" : {"type" : "keyword","ignore_above" : 256}}}}}}}
}

这里我们并没有为索引文档的数据结构做定义,但是我们发现es自动创建了 index type 以及type对应的mapping(dynamic mapping) 说明ElasticSearch能根据我们给的数据自动检测并且给定字段的数据类型

如果给定的  true  、false------>boolean

如果给定的字符串 "字符串"------>string(注意我这里用的是6.8.6版本 string已经被text或者keyword代替)

如果给定的数字   1、2------>long

如果给定的小数  12.34------>double

如果给定的时间   2020-03-14------->date

什么是映射mapping?

mapping定义了type中的每个字段的数据类型以及这些字段的如何分词的等相关属性

我们现在带查询一下添加的文档内容 GET /myindex/article/_search

{"took" : 29,"timed_out" : false,"_shards" : {"total" : 5,"successful" : 5,"skipped" : 0,"failed" : 0},"hits" : {"total" : 3,"max_score" : 1.0,"hits" : [{"_index" : "myindex","_type" : "article","_id" : "2","_score" : 1.0,"_source" : {"post_ date" : "2020-03-14","title" : "html","content" : "I like html","author_ id" : 120}},{"_index" : "myindex","_type" : "article","_id" : "1","_score" : 1.0,"_source" : {"post_ date" : "2020-03-14","title" : "Java","content" : "java is the best language","author_ id" : 119}},{"_index" : "myindex","_type" : "article","_id" : "3","_score" : 1.0,"_source" : {"post_ _date" : "2020-03-14","title" : "es","content" : "Es is distributed document store","author_ id" : 110}}]}
}

 

带条件的查询

#查不出来
GET /myindex/article/_search?q=post_date:2020

 

#可以查出来
GET /myindex/article/_search?q=post_date:2020-03-14

{"took" : 4,"timed_out" : false,"_shards" : {"total" : 5,"successful" : 5,"skipped" : 0,"failed" : 0},"hits" : {"total" : 3,"max_score" : 1.0,"hits" : [{"_index" : "myindex","_type" : "article","_id" : "2","_score" : 1.0,"_source" : {"post_date" : "2020-03-14","title" : "html","content" : "I like html","author_id" : 120}},{"_index" : "myindex","_type" : "article","_id" : "1","_score" : 1.0,"_source" : {"post_date" : "2020-03-14","title" : "Java","content" : "java is the best language","author_id" : 119}},{"_index" : "myindex","_type" : "article","_id" : "3","_score" : 1.0,"_source" : {"post_date" : "2020-03-14","title" : "es","content" : "Es is distributed document store","author_id" : 110}}]}
}

 

#可以查出来
GET /myindex/article/_search?q=content:html

 

 

注意?

这是因为ElasticSearch映射mapping进行指定的,post_date是日期类型,而content是字符串类型所以字符串就查询出来了。像日期date类型和数字long类型要进行精确查询才可以查询,而说明日期和数字类型没有进行分词,而字符串进行了分词。字符串text类型默认进行了分词的

 

到这里我们知道了mapping有两个作用,一是规定自定的类型,二是规定相关字段的属性(比如是不是进行分词)


 

 

 

 

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

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

相关文章

最优化学习笔记(五)——牛顿法(多维数据)

在最优化学习系列中,第一次就说的是牛顿法,但是那是在一维搜索上的,它其实就是将函数f在x处利用泰勒公式展开,得到它的近似函数,进而求解最小值。本节内容主要说明牛顿法在多维数据上的迭代公式。最优化学习笔记中讲到…

ElasticSearch的Object数据类型

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

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

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

ElasticSearch手动创建mapping

前面也提到过关于手动创建mapping,接着上一篇关于object类型存储以及mapping的介绍,我们接下来就介绍下如何手动创建mapping #手动创建mapping PUT /lib6 {"settings":{"number_of_shards" : 3,"number_of_replicas" : 0…

Array.prototype.slice.call

Array.prototype.slice.call(arguments,0)就类似于arguments.slice(0),但因为arguments不是真正的Array,所以它没有slice这个方法.能用slice方法的,只要有length属性就行。虽然arguments有length属性,但是没有slice方法&#xff0…

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

本来这部分内容不多,是想写在negative sampling 中和cbow一起的,但是写了后不小心按了删除键,浏览器直接回退,找不到了,所以重新写新的,以免出现上述情况 (接上) 三、Negative Sampling 模型——Skip-gra…

ElasticSearch基本查询一(英文分词)

废话不多说首先准备数据,我们先添加几个文档 PUT /lib3/user/1 { "name" : "zhaoliu","address" :"hei long jiang sheng tie ling shi","age" : 50,"birthday" : "1970-12-12","inte…

HDU1071_数学几何

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

机器学习笔记(十一)——逻辑回归

一、引言 虽然说是逻辑回归,其实既可以用它做回归,也可以用它做分类。一般我们从最简单的二分类问题开始了解他,当然也可以做多分类。 二、Logistic Regression 的一般步骤 找一个合适的假设构造损失函数让损失函数最小,求出对应…

ElasticSearch vs. Solr

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

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

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

为什么ElasticSearch应用开发者需要了解cluster state

原文链接: https://www.loggly.com/blog/p... 在前面的文章(ES vs Solr)中我们提到, ES构建了Loggly的很多核心功能. 在把这项通用搜索技术用于我们的日志管理系统, 并为超过5000多客户提供准实时服务的过程中, 我们在技术上成长颇多. 按照我们对开源社区的尊重, 在此希望能把我…

给 MySQL 增加 Sequence 管理功能

-- Sequence 管理表 DROP TABLE IF EXISTS sequence; CREATE TABLE sequence ( name VARCHAR(50) NOT NULL, current_value INT NOT NULL, increment INT NOT NULL DEFAULT 1, PRIMARY KEY (name) ) ENGINEInnoDB; -- 取当前值的函数 DROP FUNCTION IF EXISTS currval; DE…

最优化学习笔记(六)——牛顿法性质分析

一、牛顿法存在的问题 在单变量的情况下&#xff0c;如果函数的二阶导数f′′<0&#xff0c;牛顿法就无法收敛到极小点。类似的&#xff0c;在多变量的情况下&#xff0c;目标函数的hessian矩阵F(x(k))非正定&#xff0c;牛顿法的搜索方向并不一定是目标函数值的下降方向。甚…

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

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

Elasticsearch索引的数据存储路径是如何确定的

Elasticsearch中&#xff0c;在node的配置中可以指定path.data用来作为节点数据的存储目录&#xff0c;而且我们可以指定多个值来作为数据存储的路径&#xff0c;那么Elasticsearch是如何判断应该存储到哪个路径下呢&#xff1f;今天我就记录一下这个问题。 Elasticsearch的索…

带分页码的分页算法

int start 1, end 10;//如果总页数小于结束页码if (PageCount < end){//则结束页码为总页数end PageCount;}else{//当前页大于5后开始重新计算起始页,否则起始页为1start PageIndex > 5 ? PageIndex - 5 : start;//起始页码加9减去总页数,用于查看是否超过了总页数i…

最优化学习笔记(七)——Levenberg-Marquardt修正(牛顿法修正)

上节末尾谈到牛顿法中隐含的另外一个问题在于hessian矩阵可能不是正定的。因此&#xff0c;d(k)−F(x(k))−1g(x(k))\boldsymbol{d}^{(k)} = -\boldsymbol{F}(\boldsymbol{x}^{(k)})^{-1}\boldsymbol{g(x^{(k)})} 可能不会是下降方向。Levenberg-Marquardt修正可以解决这个问…

Elasticsearch内存

核心概念 基于LuceneJava应用 内存使用分析 Lucene的内存消耗 倒排索引。&#xff08;堆内存&#xff09; Lucene中&#xff0c;索引是存储在磁盘中&#xff0c;一个索引&#xff08;Index&#xff09;由多个段&#xff08;Segment&#xff09;组成。当启动IndexSearcher时&…

Canal数据堆积

记录一下canal的问题。数据同步一直使用阿里开源的canal&#xff0c;最近使用过程中遇到一些问题&#xff0c;在这里记录一下。 原因 我们使用canal监听MySQL&#xff0c;然后通过client获取发送到mq&#xff08;自定义格式&#xff09;。最近数据组的同事批量更新了一次数据…