Elasticsearch-88-nested object数据结构 发表于 2019-01-17 | 分类于 Elasticsearch 普通object类型用冗余数据的方式来建模,其实用的就是object类型,来看一个数据12345678910111213141516171819202122PUT /website/blogs/6{ "title": "花无缺发表的一篇帖子", ... 阅读全文 »
Elasticsearch-87-基于共享锁和排它锁实现悲观锁并发控制 发表于 2019-01-16 | 分类于 Elasticsearch 共享锁和排它锁共享锁: 这份数据是共享的,然后多个线程过来,都可以获取同一个数据的共享锁,然后对这个数据执行读操作.排它锁: 是排他的操作,只能一个线程获取排他锁,然后执行增删改操作 读写锁分离 如果是要读取数据的话,那么任意多少个线程都可以进来然后读取数据,每个线程都可以上一个共享锁,但 ... 阅读全文 »
Elasticsearch-86-基于document锁实现悲观锁并发控制 发表于 2019-01-16 | 分类于 Elasticsearch document锁上文中的全局锁,一次性就锁上了整个index,对这个index的所有增删改操作都会被block住,如果上锁不频繁,还可以,如果上锁释放锁的操作很频繁,显然不适用 document锁,顾名思义,每次就锁需要操作的几个doc,就可以了,被锁的doc,其他线程就不能对这些doc ... 阅读全文 »
Elasticsearch-85-基于全局锁实现悲观锁并发控制 发表于 2019-01-15 | 分类于 Elasticsearch 并发控制的几种方案结合之前的文件系统的案例, 假设有多个线程过来,要并发的给/workspace/projects/helloworld下的README.txt修改文件名,这个时候就要进行并发的控制,避免多线程的并发安全问题. 基于version的乐观锁,先获取要修改的信息的版本号,然后和自己的 ... 阅读全文 »
Elasticsearch-84-文件系统数据建模及搜索案例 发表于 2019-01-15 | 分类于 Elasticsearch 数据建模对类似文件系统(filesystem)这种的 有多层级关系的数据进行建模,比如说路径这种多层级的数据 数据添加首先先自定义一个分词器.123456789101112PUT /fs{ "settings": { "analysis ... 阅读全文 »
Elasticsearch-83-聚合分析案例 发表于 2019-01-15 | 分类于 Elasticsearch 需求对每个用户发表的博客进行分组 添加测试数据123456789101112131415161718192021222324252627282930313233PUT /website/users/3{ "name": "黄药师", " ... 阅读全文 »
Elasticsearch-82-应用层关联查询与通过冗余数据关联对比 发表于 2019-01-15 | 分类于 Elasticsearch 关系型数据建模数据建模以一个博客网站作为案例背景,模拟用户发表各种博客,然后针对用户和博客之间的关系进行数据建模,同时针对建模好的数据执行各种搜索 + 聚合的操作 先以类似关系型数据库中的模型来构建数据,还是将有关联的数据分割为不同的实体 添加数据12345678910111213PUT ... 阅读全文 »
Elasticsearch-81-关系型数据库与document类型数据模型对比 发表于 2019-01-15 | 分类于 Elasticsearch Java类有如下两个类,部门类和员工类12345678public class Department { private Integer deptId; private String name; private String desc; private List<Employee& ... 阅读全文 »
Elasticsearch-80-海量bucket的优化机制 发表于 2019-01-15 | 分类于 Elasticsearch 概述先来看一个需求 现在有一堆数据,是每个演员的每个电影的评论,现在我们要取到10个演员的评论数量排名前5的电影 看一下请求体12345678910111213141516171819{ "aggs" : { "actors&quo ... 阅读全文 »
Elasticsearch-79-fielddata filter的细粒度内存加载控制以及预加载机制 发表于 2019-01-15 | 分类于 Elasticsearch filter的细粒度内存加载控制12345678910111213141516POST /test_index/_mapping/my_type{ "properties": { "my_field": { &q ... 阅读全文 »