
elasticsearch
R_P_J
个人学习笔记整理
展开
-
第一篇 elasticsearch介绍
1.es介绍1.1.es功能分布式的搜索引擎和数据分析引擎 数据分析:电商网站,最近7天牙膏销量排行前十商家(举例);全文检索,结构化检索,数据分析 全文检索:我想搜索商品名称包含牙膏的商品,select * from products where product_name like “%牙膏%” 结构化检索:我想搜索商品分类为日化用品的商品都有哪些,select * from produ原创 2017-10-27 17:28:46 · 671 阅读 · 0 评论 -
第十一篇 elasticsearch的分页搜索和deep_paging性能问题
1. 分页搜索的语法size,fromGET /_search?size=10GET /_search?size=10&from=0GET /_search?size=10&from=202. deep paging性能探究deep paging简单来说,就是搜索的特别深,比如总共有60000条数据,每个shard上分20000条,每页是10条数据,这个时候你要搜索到第1000页,实际上要拿到的原创 2017-10-31 14:25:50 · 1285 阅读 · 4 评论 -
第十二篇 elasticsearch中的mapping透彻理解
首先插入几条数据,让es自动为我们建立一个索引PUT /website/article/1{ "post_date": "2017-01-01", "title": "my first article", "content": "this is my first article in this website", "author_id": 11400}PUT /website/a原创 2017-10-31 17:00:33 · 1644 阅读 · 0 评论 -
第十三篇 elasticsearch的Query DSL搜索语法
Query DSL基本语法{ QUERY_NAME: { ARGUMENT: VALUE, ARGUMENT: VALUE,... }}{ QUERY_NAME: { FIELD_NAME: { ARGUMENT: VALUE, ARGUMENT: VALUE,...原创 2017-10-31 18:01:12 · 2004 阅读 · 0 评论 -
第十四篇 elasticsearch的结构化搜索(全)
1. 使用term、filter来搜索数据1.1 插入一些数据POST /forum/article/_bulk{ "index": { "_id": 1 }}{ "articleID" : "XHDK-A-1293-#fJ3", "userID" : 1, "hidden": false, "postDate": "2017-01-01" }{ "index": { "_id": 2 }}原创 2017-11-02 14:27:31 · 1284 阅读 · 0 评论 -
第十五篇 深度揭秘elasticsearch的搜索技术
1. 手动控制全文检索结果的精准度1.1 为帖子数据添加标题字段POST /forum/article/_bulk{ "update": { "_id": "1"} }{ "doc" : {"title" : "this is java and elasticsearch blog"} }{ "update": { "_id": "2"} }{ "doc" : {"title" : "thi原创 2017-11-02 17:17:49 · 685 阅读 · 0 评论 -
第十六篇 深入elasticsearch聚合数据分析
1. bucket与metric两个核心概念单词意思就可以理解: bucket:桶 就是对我们的数据进行分组; sql中相当于:group by user_idmetric:度量标准 就是对一个数据分组执行的某种聚合分析的操作,比如说求平均值,求最大值,求最小值;2、家电卖场案例背景以一个家电卖场中的电视销售数据为背景,来对各种品牌,各种颜色的电视的销量和销售额,进行各种各样角度的分析//添原创 2017-11-03 20:34:51 · 2418 阅读 · 0 评论 -
第十七篇:elasticsearch java API的使用
首先添加上maven依赖:<dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>transport</artifactId> <version>5.2.2</version></dependency><dependency> <groupId>org.apache.logging.原创 2017-11-06 20:42:20 · 661 阅读 · 0 评论 -
笔记:elasticsearch在项目中的使用需求
(摘抄自公司大牛的笔记,自己总结一下) 类比mysql,我们需要=、>、>=、<、<= 、or、and、in、like、count、sum、group by、order by、limit 在高版本的ES里面使用了boolquery替换了filter1、等于号=QueryBuilders.termQuery("isDel",1));//termQuery相当于=,相当于isDel=12、大于小于原创 2017-11-16 21:19:36 · 3233 阅读 · 0 评论 -
图解elasticsearch的写入流程(包含对refresh、fsync、flush操作的理解)
elasticsearch写入数据时涉及到的核心概念讲解:segment file: 存储逆向索引的文件,每个segment本质上就是一个逆向索引,每秒都会生成一个segment文件,当文件过多时es会自动进行segment merge(合并文件),合并时会同时将已经标注删除的文档物理删除;commit point(重点理解): 记录当前所有可用的segment,每个commit poin...原创 2018-08-31 12:06:43 · 6949 阅读 · 16 评论 -
第十篇 elasticsearch的写一致性原理以及quorum机制深入剖析
1. consistency参数:one(primary shard),all(all shard),quorum(default)我们在发送任何一个增删改操作时比如put /index/type/id,都可以带上一个consistency参数,指明我们想要的写一致性是什么:put /index/type/id?consistency=quorumone:要求我们这个写操作,只要有一个primar原创 2017-10-30 17:50:49 · 2111 阅读 · 2 评论 -
第九篇 elasticsearch的document数据路由原理
1. document是怎么路由到shard上的?路由算法:shard = hash(routing) % number_of_primary_shards 假如一个index有3个primary shard,P0,P1,P2; 在每次增删改查一个document的时候都会带过来一个routing number,默认就是这个document的_id(可能是手动指定,也可以自动生成); elas原创 2017-10-30 14:13:55 · 596 阅读 · 0 评论 -
第二篇 应用elasticsearch进行简单的商品管理
一、集群健康检查和文档CRUD1. 快速查询集群的健康状况GET /_cat/health?v了解集群的健康状况 green:每个索引的primary shard和replica shard都是active状态的。 yellow:每个索引的primary shard都是active状态的,但是部分replica shard不是active状态,处于不可用的状态 red:不是所有索引的pri原创 2017-10-27 20:12:24 · 1999 阅读 · 0 评论 -
第三篇 elasticsearch的group by+avg+sort等聚合分析
本文依据如下数据模板进行分析PUT /ecommerce/product/1{ "name" : "gaolujie yagao", "desc" : "gaoxiao meibai", "price" : 30, "producer" : "gaolujie producer", "tags": [ "meibai", "fangzhu" ]原创 2017-10-28 16:00:35 · 10693 阅读 · 2 评论 -
第四篇 elasticsearch的基本分布式架构
1、Elasticsearch对复杂分布式机制的透明隐藏特性Elasticsearch是一套分布式的系统,分布式是为了应对大数据量,它很好的隐藏了复杂的分布式机制:shard分片机制 我们可以随随便便就将一些document插入到es集群中去,而且不用关心数据怎么进行分片的,数据到哪个shard中去。cluster discovery集群发现机制 举例:我们之前在做那个集群status从ye原创 2017-10-28 17:19:13 · 1593 阅读 · 0 评论 -
补充篇 基于linux centos 7安装elasticsearch
强调:elasticsearch是基于JDK1.8运行的,安装前请务必安装完jdk1.8一、安装elasticsearch1、 进入我的安装目录:cd /usr/local/ 2、执行下载命令:wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.1.1.tar.gz3、执行解压命令:tar -zxf e原创 2017-11-02 18:20:54 · 2372 阅读 · 0 评论 -
第七篇 elasticsearch如何解决并发冲突问题
1. 乐观锁和悲观锁两种并发控制方案数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技术手段。 不要把他们和数据中提供的锁机制(行锁、表锁、排他锁、共享锁)混为一谈。其实,在DBMS中,悲观锁正是利用数据库本身提供的锁机制来实现的。1.1 悲观锁如原创 2017-10-29 22:31:35 · 5393 阅读 · 0 评论 -
第八篇 elasticsearch的批量增删改查
1. 批量查询1.1 mget查询的语法GET /_mget{ "docs" : [ { "_index" : "test_index", "_type" : "test_type", "_id" : 1 }, { "_index" : "test_index",原创 2017-10-30 11:35:01 · 3870 阅读 · 0 评论 -
第六篇 elasticsearch中的document全量替换、强制创建以及删除机制
1、document的全量替换语法与创建文档是一样的,如果document id不存在,那么就是创建;如果document id已经存在,那么就是全量替换操作,替换document的json串内容document是不可变的,如果要修改document的内容,第一种方式就是全量替换,直接对document重新建立索引,替换里面所有的内容es会将老的document标记为deleted,然后新增我原创 2017-10-28 18:27:38 · 2617 阅读 · 3 评论 -
第五篇 elasticsearch中document的核心元数据
1、_index元数据(1)代表一个document存放在哪个index中 (2)类似的数据放在一个索引,非类似的数据放不同索引:product index(包含了所有的商品),sales index(包含了所有的商品销售数据),inventory index(包含了所有库存相关的数据)。如果你把比如product,sales,human resource(employee),全都放在一个大的in原创 2017-10-28 17:25:48 · 694 阅读 · 0 评论