父子结构 父亲type属性查询子type 的类型 父子结构的查询,可以通过父亲类型的字段,查询出子类型的索引信息 POST /product/_search { "query": { "has_parent": { "parent_type": "base", "query": { "term": { "productId": { "value":…
扩容设计 扩容的单元 一个分片即一个 Lucene 索引 ,一个 Elasticsearch 索引即一系列分片的集合 一个分片即为 扩容的单元 . 一个最小的索引拥有一个分片. 一个只有一个分片的索引无扩容因子 - 如何判断一个请求过来,我的信息在哪个分片上面 shard = hash(routing) % number_of_primary_shards routing 大致是指文档的id 分片预分配 一个分片存在于单个节点, 但一个节点可以持有多个分片 一个拥有两个分片的索引可以利用第二个节…
ES添加排序 在默认的情况下,ES 是根据文档的得分score来进行文档额排序的.但是自己可以根据自己的针对一些字段进行排序.就像下面的查询脚本一样.下面的这个查询是根据productid这个值进行排序的,而且进行了双字段的排序.当productid 相同时的文档是根据下面的那个排序字段进行的排序 POST /product/_search { "query": { "bool": { "filter": { "term":…
ES几种常见的聚合操作 普通聚合 POST /product/_search { "size": 0, "aggs": { "agg_city": { "terms": { "field": "departureCitys" //字段 } } } } 父子结构的索引的聚合 POST product/_search { "size": 0, "aggs&quo…
短语匹配 短语匹配故名思意就是对分词后的短语就是匹配,而不是仅仅对单独的单词进行匹配 下面就是根据下面的脚本例子来看整个短语匹配的有哪些作用和优点 GET /my_index/my_type/_search { "query": { "match_phrase": { "title": "quick brown fox" } } } //查询分词之后连续的 //例如 brown fox 可以查询到,但是quick fox 查询…
分布式文档存储 ES分布式特性 屏蔽了分布式系统的复杂性 集群内的原理 垂直扩容和水平扩容 真正的扩容能力是来自于水平扩容–为集群添加更多的节点,并且将负载压力和稳定性分散到这些节点中 ES集群特点 一个集群拥有相同的cluster.name 配置的节点组成, 它们共同承担数据和负载的压力 主节点负责管理集群的变更例如增加.删除索引,或者增加.删除节点等. 而主节点并不需要涉及到文档级别的变更和搜索等操作 集群健康 1.GET /_cluster/health 返回值中的status 是我们关注…
高亮搜索 ES 通过在查询的时候可以在查询之后的字段数据加上html 标签字段,使文档在在web 界面上显示的时候是由颜色或者字体格式的 GET /product/_search { "size": 200, "query": { "match_phrase": { "name": "上海" } }, "highlight": { "fields": { "…
ElasticSearch 系列文章 1 ES 入门之一 安装ElasticSearcha 2 ES 记录之如何创建一个索引映射 3 ElasticSearch 学习记录之Text keyword 两种基本类型区别 4 ES 入门记录之 match和term查询的区别 5 ElasticSearch 学习记录之ES几种常见的聚合操作 6 ElasticSearch 学习记录之父子结构的查询 7 ElasticSearch 学习记录之ES查询添加排序字段和使用missing或existing字段查…
Elasticsearch学习记录(入门篇) 1. Elasticsearch的请求与结果 请求结构 curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>' VERB HTTP方法:GET, POST, PUT, HEAD, DELETE PROTOCOL http或者https协议(只有在Elasticsearch前面有ht…
Elasticsearch学习记录(分布式的特性) 分布式的特性 我们提到Elasticsearch可以扩展到上百(甚至上千)的服务器来处理PB级的数据.然而我们的例子只给出了一些使用Elasticsearch的例子,并未涉及相关机制.Elasticsearch为分布式而生,而且它的设计隐藏了分布式本身的复杂性. Elasticsearch在分布式概念上做了很大程度上的透明化,在教程中你不需要知道任何关于分布式系统.分片.集群发现或者其他大量的分布式概念.所有的教程你既可以运行在你的笔记本上,也…
最近开发组培训了ElasticSearch,准备开展新项目,我也去凑了下热闹,下面把学习过程记录一下. 一.安装 1.环境需要jdk1.8; 2.下载:http://www.elastic.co/downloads/elasticsearch 3.下载完成后在端终解压,解压命令:tar -vxf elasticsearch-6.2.4.tar 二.启动elasticSearch 进入文件夹:cd elasticsearch-6.2.4 启动命令:sh ./bin/elasticsearch 如下…
分片内部原理 分片是如何工作的 为什么ES搜索是近实时性的 为什么CRUD 操作也是实时性 ES 是怎么保证更新被持久化时断电也不丢失数据 为什么删除文档不会立即释放空间 refresh, flush, 和 optimize API 作用 使文本可被搜索 倒排索引的结构 词项 文档列表 Term | Doc 1 | Doc 2 | Doc 3 | ... ------------------------------------ brown | X | | X | ... fox | X | X…
lasticsearch查询模式 一种是像传递URL参数一样去传递查询语句,被称为简单查询 GET /library/books/_search //查询index为library,type为books的全部内容 GET /library/books/_search?q=price:10 //查询index为library,type为books中price等于10的 另一种是DSL语句来进行查询,被称为DSL查询,term和match就属于DSL term查询 term是代表完全匹配,即不进行分…
Elasticsearch查询模式 一种是像传递URL参数一样去传递查询语句,被称为简单查询 GET /library/books/_search //查询index为library,type为books的全部内容 GET /library/books/_search?q=price:10 //查询index为library,type为books中price等于10的 另一种是DSL语句来进行查询,被称为DSL查询,term和match就属于DSL term查询 term是代表完全匹配,即不进行…
中文api 什么是集群? 集群(cluster) >由一个或多个节点组织在一起. >由一个唯一的名字标识,默认为"elasticsearch". 节点(node) >一个节点是集群中的一个服务器. >由一个名字来标识,默认是一个随机的漫威漫画角色的名字. 索引(index) >是ElasticSearch中存储数据的一种逻辑结构. >是拥有几分相似特征的集合. >一个索引由一个名字来标识(全部是小写名字). >ElasticSearch集…
1. 什么是查询缓存 mybatis提供查询缓存,用于减轻数据压力,提高数据库性能. mybaits提供一级缓存,和二级缓存. 一级缓存是SqlSession级别的缓存.在操作数据库时需要构造 sqlSession对象,在对象中有一个数据结构(HashMap)用于存储缓存数据.不同的sqlSession之间的缓存数据区域(HashMap)是互相不影响的. 二级缓存是mapper级别的缓存,多个SqlSession去操作同一个Mapper的sql语句,多个SqlSession可以共用二级缓存,二级…
近实时搜索 提交(Commiting)一个新的段到磁盘需要一个 fsync 来确保段被物理性地写入磁盘,这样在断电的时候就不会丢失数据.但是每次提交的一个新的段都fsync 这样操作代价过大.可以使用下面这种更轻量的方式 在内存缓冲区中包含了新文档的 Lucene 索引 Lucene 允许新段被写入和打开--使其包含的文档在未进行一次完整提交时便对搜索可见 缓冲区的内容已经被写入一个可被搜索的段中,但还没有进行提交 这里新段会被先写入到文件系统缓存--这一步代价会比较低,稍后再被刷新到磁盘--这…
一.批量查询  mget             GET /_mget {   "docs":[       {         "_index":"ecommerce",         "_type":"product",         "_id":1       },       {         "_index":"ecommerce"…
1. 为帖子增加标题字段 POST /forum/article/_bulk { "} } { "doc" : {"title" : "this is java and elasticsearch blog"} } { "} } { "doc" : {"title" : "this is java blog"} } { "} } { "doc&qu…
GET /searchfilmcomments/searchfilmcomments/_search { "query": { "match_all": {} } } GET /searchfilmcomments/searchfilmcomments/3097 GET /searchfilmcomments/searchfilmcomments/_search { "query": { "match_phrase": { &…
ElasticSearch 系列文章 1 ES 入门之一 安装ElasticSearcha 2 ES 记录之如何创建一个索引映射 3 ElasticSearch 学习记录之Text keyword 两种基本类型区别 4 ES 入门记录之 match和term查询的区别 5 ElasticSearch 学习记录之ES几种常见的聚合操作 6 ElasticSearch 学习记录之父子结构的查询 7 ElasticSearch 学习记录之ES查询添加排序字段和使用missing或existing字段查…
之前我们所有的查询都属于命令行查询,但是不利于复杂的查询,而且一般在项目开发中不使用命令行查询方式,只有在调试测试时使用简单命令行查询,但是,如果想要善用搜索,我们必须使用请求体查询(request body search)API.之所以这么称呼,是因为大多数的参数以JSON格式所容纳而非查询字符串.请求体查询,并不仅仅用来处理查询,而且还可以高亮返回结果中的片段,并且给出帮助你的用户找寻最好结果的相关数据建议. 空查询 我们以最简单的search API开始,空查询将会返回索引中所有的文档.…
请求体查询 简单查询语句(lite)是一种有效的命令行adhoc查询.但是,如果你想要善用搜索,你必须使用请求体查询(request body search)API. 空查询 我们以最简单的 search API开始,空查询将会返回索引中所有的文档. GET /_search {} 同字符串查询一样,你可以查询一个,多个或_all索引(indices)或类型(types): GET /index_2014*/type1,type2/_search {} 你可以使用from及size参数进行分页:…
基本概念 索引: 类似于MySQL的表.索引的结构为全文搜索作准备,不存储原始的数据. 索引可以做分布式.每一个索引有一个或者多个分片 shard.每一个分片可以有多个副本 replica. 文档: 类似与MySQL的一行记录. 映射: 所有文档写入索引之前,会进行分析, 分析将输入的文本进行分割为词条,分析哪些词条会被过滤. 文档类型: 每个文档都可以有不同的结构. 不同的文档类不能为相同的属性设置不同的类型. [同一索引中所有文档类型中,一个title字段必须是相同的类型] 索引操作 添加索…
引用:ElasticSearch权威指南 一.请求体查询 请求体查询 简单查询语句(lite)是一种有效的命令行_adhoc_查询.但是,如果你想要善用搜索,你必须使用请求体查询(request body search)API.之所以这么称呼,是因为大多数的参数以JSON格式所容纳而非查询字符串. 请求体查询(下文简称查询),并不仅仅用来处理查询,而且还可以高亮返回结果中的片段,并且给出帮助你的用户找寻最好结果的相关数据建议. 空查询 我们以最简单的 search API开始,空查询将会返回索引…
elastic 被用作全文搜索.结构化搜索.分析以及这三个功能的组合 一个ElasticSearch集群可以包含多个索引, 每个索引包含多个类型 一个类型存储着多个文档 每个文档又有多个属性 索引(名词) 一个 索引 类似于传统关系数据库中的一个 数据库 , 是一个存储关系型文档的地方. 索引 (index) 的复数词为 indices 或 indexes . 索引(动词) 索引一个文档 就是存储一个文档到一个 索引 (名词) 中以便它可以被检索和查询到. 这非常类似于 SQL语句中的 INSE…
01.基础架构:一条SQL查询语句是如何执行的?学习记录http://naotu.baidu.com/file/1c8fb5a0f2497c3a2655fed89099cb96?token=ff25d51902bd6471…
Elasticsearch.XXLJob以及最近的学习记录 前言 在这九月的最后一周,来总结一下最近的学习记录,主要是对于Elasticsearch.XXLjob的初步学习,想着还是多记录点,以便后面去看看,具体的错误认知点在哪,以及找到一些自己的认识点. 后台数据脱敏 一.普通方式 首先该功能是基于Spring Boot项目做的,所以这是一个简单的流程. 具体实现:首先设定一个角色code,比如 "涉密人员" "secret": 通过登录时获取token中的用户名…
1.之前三节讲述的都是索引结构及内容填充的部分,既然添加了数据那我们的目的无非就是增产改查crudp,我先来讲讲查询-----结构化查询 我们看上图截图两种方式: 1)第一种,在索引index5类型school下面定义一个查询query(这就是内嵌查询的关键字),query内部嵌套一个match根据指定field也就是字段查找其内容包含的关键字hawal. 2)第二种,在索引index5类型school下面定义一个查询query(这就是内嵌查询的关键字),query内部嵌套一个match_all…
浅谈oracle树状结构层级查询 oracle树状结构查询即层次递归查询,是sql语句经常用到的,在实际开发中组织结构实现及其层次化实现功能也是经常遇到的,虽然我是一个java程序开发者,我一直觉得只要精通数据库那么对于java开发你就成功了三分之一,本篇中主要介绍start with...connect by prior .order by .sys_connect_by_path. 概要:树状结构通常由根节点.父节点.子节点和叶节点组成,简单来说,一张表中存在两个字段,dept_id,par…