elasticsearch7.1的一些自问自答
1.问:index的shard数量,为什么是静态的,只能在索引创建时指定,而不能中途修改?
答:是因为custom routing的特性造成的限制。我们知道,一个document会在索引是会被路由到哪个shard,并且在以后的update,delete,select会到哪个shard上去拿数据,都是由这个公式决定的:
shard_num = hash(_routing) % num_primary_shards
或者
shard_num = (hash(_routing) + hash(_id) % routing_partition_size) % num_primary_shards
,其中_routing是在索引时指定的路由值,默认是document的id。试想一下,如果公式里的num_primary_shards变了,那得出来的shard_num可能就不同了,会直接造成根据路由值找不到document的情况。
2.问:custom routing的索引,为什么不能保证id唯一?
答:非custom routing的索引,相同的id必然会路由到同一个shard,因此,只需要保证同一个shard中的id唯一即可。鉴于shard是一个lucene的instance,这个是物理上(虽然最小的物理上的结构是segment)的结构,这个唯一性保证不难做到。但是custom routing的索引,相同id不一定路由到同一个shard,因此即使同一个shard内id唯一,也不能保证shard间id的唯一性。
3.问:GET/DELETE/PUT/POST有什么区别?
答:GET,获取信息,类似于mysql中的select;DELETE,删除文档、索引,类似于mysql中的delete结合drop的功能;PUT,创建索引,修改索引,新增文档,修改文档;POST,新增文档,修改文档。在这里,PUT和POST在文档上的功能有重复,但又有不同:
PUT
verb (“store this document at this URL”),
POST
verb (“store this document under this URL”)
PUT,在这个url上面存储这个文档,这里的url是精确的。精确的意思,就是包含文档ID,将这个文档,索引在这个ID上面。通过这个精确的url,后面还能GET到这个文档。
POST,在这个url下存储这个文档,这里的url是不必是精确的。可以包含或者不包含文档ID。包含文档ID的话,可以做新增和更新文档。不包含文档ID的话,可以通过自动产生文档ID的方式新增文档。
elasticsearch7.1的一些自问自答相关推荐
- [python]自问自答:python -m参数? (转)
python -m xxx.py 作用是:把xxx.py文件当做模块启动 但是我一直不明白当做模块启动到底有什么用.python xxx.py和python -m xxx.py有什么区别! 自问自答: ...
- JAVA容器-自问自答学HashMap
前言 这次我和大家一起学习HashMap,HashMap我们在工作中经常会使用,而且面试中也很频繁会问到,因为它里面蕴含着很多知识点,可以很好的考察个人基础.但一个这么重要的东西,我为什么没有在一开始 ...
- 分享蔡澜老师的自问自答
蔡澜老师的个人网站上有个「访问自己」的板块,里面记录了很多蔡澜老师的「自问自答」,问题和回答都很有趣,从中挑选了一部分.喜欢这种洒脱率真的生活态度. 附上网址 http://blog.sina.com ...
- Golang 数组的一些自问自答
基于Go-1.17.一些研究Go数组的自问自答,可以考虑作为面试题 image-20211227100817481 所有代码基于Go-1.17.一些研究Go数组的自问自答,可以考虑作为面试题. 问题: ...
- Maven 自问自答
Maven 自问自答 Maven 自问自答 maven有什么用 POM 是一个什么东西 解读pom Build Lifecycle maven 三条指令运行web项目 maven常用指令 maven结 ...
- 干货!JAVA容器-自问自答学HashMap
前言 这次我和大家一起学习HashMap,HashMap我们在工作中经常会使用,而且面试中也很频繁会问到,因为它里面蕴含着很多知识点,可以很好的考察个人基础.但一个这么重要的东西,我为什么没有在一开始 ...
- vue 源码自问自答-响应式原理
vue 源码自问自答-响应式原理 最近看了 Vue 源码和源码分析类的文章,感觉明白了很多,但是仔细想想却说不出个所以然. 所以打算把自己掌握的知识,试着组织成自己的语言表达出来 不打算平铺直叙的写清 ...
- RT_Thread自问自答
在看韦东山老师"RT-Thread内部机制"的视频,挺有意思的,有些概念的理解还是要深究一下,不然可能就是"我知道,这不就是那个....那个....那个",哪个 ...
- 自问自答:在VB中如何实现像C++一样printf的功能
问: 每个整型都转换成5位的字符串,不足的在前面补0.比如:1转换成"00001",10转换成"00010".怎么实现? 答: format(1,"0 ...
最新文章
- 读《惰者集》有感:数学是一门需要敏锐感觉的学问
- Https协议/SSL协议
- kalilinux安装qt_Kali Linux安装搜狗输入法(只需5步)
- bpython使用_使用Python实现一个简单的A/B测试
- Rtx userlist.php,【图片】【C语言】【控制台】提取腾讯通用户信息(id,用户名,手机)【erbi_lucifer吧】_百度贴吧...
- CVPR2021 视频超分辨率中的时空蒸馏方案
- 省A类竞赛二等奖--村先游项目VUE前端重构
- android10无法获取ssid,How to get WIFI SSID in Android 10.0?
- linux使用man守护进程,man手册的使用
- 作为程序员,外包到底值不值得去呢
- mysql查找附近算法_附近地点搜索解决方案
- java设计模式 之适配器模式
- 通过身份证号得到年龄、性别和出生日期
- 从虎胆龙威4(live free or die hard)说黑客攻击
- Java发邮件(详解+源代码)
- springcloud-微服务
- 计算机考研高校改初试科目,考研初试科目修改!报考的考生注意了!
- 在共享主机上使用Screen for Human Beings:Byobu
- codeforces 1567 C. Carrying Conundrum
- mongodb根据_id进行查询