读《深入理解Elasticsearch》点滴-对象类型、嵌套文档、父子关系
一、对象类型
1、mapping定义文件
"title":{
"type":"text"
},
"edition":{
"type":"object",
"properties":{
"isbn":{
"type":"text"
}
}
}
2、索引数据
"title":"title_1",
"edition":[
{
"isbn":"",
"circulation":50000
},
{
"isbn":"",
"circulation":2000
}
]
3、等效于
"title":"title_1",
"edition"
{
"isbn":["",""],
"circulation":[,]
}
4、总结一下:
object类型只有在很简单的情景中好用,如“一对一“的父子环境当中;或者不存在跨字段找找等情况是,仅需要在单个字段中搜索而不需要关联多个字段时,或者不需要在对象中搜索。
二、嵌套文档
1、mapping定义
"title":{
"type":"text"
},
"edition":{
"type":"nested",
"properties":{
"isbn":{
"type":"text"
} }
}
2、总结
- 普通查询,嵌套文档被自动过滤掉,不会被搜索到或展示出来。这在Lucene中被称为块链接(block join)。出于性能方面的考虑,嵌套文档与主文档保存在一个索引块中
- 主文档与嵌套文档在索引期间同时存储的,又称为“索引期连接(index-time join)。
- 当主文档和嵌套文档都很小,且主文档易于获取时,这种强关联关系并不会造成什么问题。如果这些文档很大,关联双方之一变化频繁,那么重建另外一部分文档变得不太现实里。
- 另外就是如果一个嵌套文档属于多个主文档时,问题会变得非常棘手。
三、parent-child 关系
1、最大的优势,父子关系双方的文档是相互独立的,又称为”查询期连接(query-time join)。
2、代价就是更复杂的查询及更慢的查询性能
3、第二个优势:父子关系适用于大型应用及多节点场景
4、子文档检索并不强制在父文档上下文中进行
5、一个异常的例子:
父数据有1000条,通过hash存储到不同的分片上;
子数据有1000条,所有子数据的对应同一条父数据;
1000条子数据都将存储到同一个分片上。
6、如果某些分文档有多个子文档,会导致文档在分片之间的不均匀分布
读《深入理解Elasticsearch》点滴-对象类型、嵌套文档、父子关系的更多相关文章
- Elasticsearch压缩索引——lucene倒排索引本质是列存储+使用嵌套文档可以大幅度提高压缩率
注意:由于是重复数据,词法不具有通用性!文章价值不大! 摘自:https://segmentfault.com/a/1190000002695169 Doc Values 会压缩存储重复的内容. 给定 ...
- Elasticsearch配置详解、文档元数据
目录 返回目录:http://www.cnblogs.com/hanyinglong/p/5464604.html 1.Elasticsearch配置文件详解 a. 在上面博客中,我们已经安装并且成功 ...
- ElasticSearch查询 第二篇:文档更新
<ElasticSearch查询>目录导航: ElasticSearch查询 第一篇:搜索API ElasticSearch查询 第二篇:文档更新 ElasticSearch查询 第三篇: ...
- ElasticSearch 学习记录之 分布式文档存储往ES中存数据和取数据的原理
分布式文档存储 ES分布式特性 屏蔽了分布式系统的复杂性 集群内的原理 垂直扩容和水平扩容 真正的扩容能力是来自于水平扩容–为集群添加更多的节点,并且将负载压力和稳定性分散到这些节点中 ES集群特点 ...
- ElasticSearch权威指南学习(文档)
什么是文档 在Elasticsearch中,文档(document)这个术语有着特殊含义.它特指最顶层结构或者根对象(root object)序列化成的JSON数据(以唯一ID标识并存储于Elasti ...
- 运用 Range 对象处理 Word 文档内容
运用 Range 对象处理 Word 文档内容 在所有 Office 应用程序中,Microsoft Word 可能是应用最广泛的应用程序,它还经常在自定义 Office 解决方案中扮演重要的角色 ...
- MongDb添加嵌套文档
想添加嵌套文档,就需要创建2个实体类.如下图 usermodel.Student = student; 其中Student的类型就是StudentModel: 第一个实体类 ...
- ElasticSearch(二):文档的基本CRUD与批量操作
ElasticSearch(二):文档的基本CRUD与批量操作 学习课程链接<Elasticsearch核心技术与实战> Create 文档 支持自动生成文档_id和指定文档_id两种方式 ...
- elasticsearch查询篇索引映射文档数据准备
elasticsearch查询篇索引映射文档数据准备 我们后面要讲elasticsearch查询,先来准备下索引,映射以及文档: 我们先用Head插件建立索引film,然后建立映射 POST http ...
随机推荐
- CSU1784
题意略. 思路:为了更好地求出一段连续数字的异或和,我们可以用前缀异或和来维护,现在我们只需要考虑每一个在数组中的数字向前异或,且在指定范围内, 异或值为全1的个数有多少个.算出每一个位子能做出的贡献 ...
- java四种引用及在LeakCanery中应用
java 四种引用 Java4种引用的级别由高到低依次为: StrongReference > SoftReference > WeakReference > PhantomRefe ...
- TensorFlow Distribution(分布式中的数据读取和训练)
本文目的 在介绍estimator分布式的时候,官方文档由于版本更新导致与接口不一致.具体是:在estimator分布式当中,使用dataset作为数据输入,在1.12版本中,数据训练只是datase ...
- 一文读懂HashMap
推荐 转载:https://www.jianshu.com/p/ee0de4c99f87
- Keras(七)Keras.layers各种层介绍
一.网络层 keras的层主要包括: 常用层(Core).卷积层(Convolutional).池化层(Pooling).局部连接层.递归层(Recurrent).嵌入层( Embedding).高级 ...
- Keras(二)Application中五款已训练模型、VGG16框架解读
Application的五款已训练模型 + H5py简述 Keras的应用模块Application提供了带有预训练权重的Keras模型,这些模型可以用来进行预测.特征提取和finetune. 后续还 ...
- k近邻法的实现
k近邻法 模型 使用的模型实际上对应于特征空间的划分.模型的三个基本要素:1.距离度量 2. k值的选择 3. 分类决策规则决定. k值的选择:k值的选择,k如果选择的过小会导致过拟合,模型会变得复杂 ...
- JPA多条件复杂SQL动态分页查询
概述 ORM映射为我们带来便利的同时,也失去了较大灵活性,如果SQL较复杂,要进行动态查询,那必定是一件头疼的事情(也可能是lz还没发现好的方法),记录下自己用的三种复杂查询方式. 环境 spring ...
- odoo12从零开始:二、个性化定制odoo12 之 创建数据库页面
剧情回顾 上一文章,我们已经成功运行了odoo12,并访问localhost:8069看到如下界面: 我们还没有创建数据库,但是我们发现,数据库管理页面的logo是odoo,数据库页面全是英文的,对于 ...
- 【selenium】- webdriver常见元素定位(中)
本文由小编根据慕课网视频亲自整理,转载请注明出处和作者. 1.By.tagName 遇到hidden就break,继续下一个循环. 2.By.linkText 对上图中的“糯米”进行定位: 3.By. ...