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的一些自问自答相关推荐

  1. [python]自问自答:python -m参数? (转)

    python -m xxx.py 作用是:把xxx.py文件当做模块启动 但是我一直不明白当做模块启动到底有什么用.python xxx.py和python -m xxx.py有什么区别! 自问自答: ...

  2. JAVA容器-自问自答学HashMap

    前言 这次我和大家一起学习HashMap,HashMap我们在工作中经常会使用,而且面试中也很频繁会问到,因为它里面蕴含着很多知识点,可以很好的考察个人基础.但一个这么重要的东西,我为什么没有在一开始 ...

  3. 分享蔡澜老师的自问自答

    蔡澜老师的个人网站上有个「访问自己」的板块,里面记录了很多蔡澜老师的「自问自答」,问题和回答都很有趣,从中挑选了一部分.喜欢这种洒脱率真的生活态度. 附上网址 http://blog.sina.com ...

  4. Golang 数组的一些自问自答

    基于Go-1.17.一些研究Go数组的自问自答,可以考虑作为面试题 image-20211227100817481 所有代码基于Go-1.17.一些研究Go数组的自问自答,可以考虑作为面试题. 问题: ...

  5. Maven 自问自答

    Maven 自问自答 Maven 自问自答 maven有什么用 POM 是一个什么东西 解读pom Build Lifecycle maven 三条指令运行web项目 maven常用指令 maven结 ...

  6. 干货!JAVA容器-自问自答学HashMap

    前言 这次我和大家一起学习HashMap,HashMap我们在工作中经常会使用,而且面试中也很频繁会问到,因为它里面蕴含着很多知识点,可以很好的考察个人基础.但一个这么重要的东西,我为什么没有在一开始 ...

  7. vue 源码自问自答-响应式原理

    vue 源码自问自答-响应式原理 最近看了 Vue 源码和源码分析类的文章,感觉明白了很多,但是仔细想想却说不出个所以然. 所以打算把自己掌握的知识,试着组织成自己的语言表达出来 不打算平铺直叙的写清 ...

  8. RT_Thread自问自答

    在看韦东山老师"RT-Thread内部机制"的视频,挺有意思的,有些概念的理解还是要深究一下,不然可能就是"我知道,这不就是那个....那个....那个",哪个 ...

  9. 自问自答:在VB中如何实现像C++一样printf的功能

    问: 每个整型都转换成5位的字符串,不足的在前面补0.比如:1转换成"00001",10转换成"00010".怎么实现? 答: format(1,"0 ...

最新文章

  1. 读《惰者集》有感:数学是一门需要敏锐感觉的学问
  2. Https协议/SSL协议
  3. kalilinux安装qt_Kali Linux安装搜狗输入法(只需5步)
  4. bpython使用_使用Python实现一个简单的A/B测试
  5. Rtx userlist.php,【图片】【C语言】【控制台】提取腾讯通用户信息(id,用户名,手机)【erbi_lucifer吧】_百度贴吧...
  6. CVPR2021 视频超分辨率中的时空蒸馏方案
  7. 省A类竞赛二等奖--村先游项目VUE前端重构
  8. android10无法获取ssid,How to get WIFI SSID in Android 10.0?
  9. linux使用man守护进程,man手册的使用
  10. 作为程序员,外包到底值不值得去呢
  11. mysql查找附近算法_附近地点搜索解决方案
  12. java设计模式 之适配器模式
  13. 通过身份证号得到年龄、性别和出生日期
  14. 从虎胆龙威4(live free or die hard)说黑客攻击
  15. Java发邮件(详解+源代码)
  16. springcloud-微服务
  17. 计算机考研高校改初试科目,考研初试科目修改!报考的考生注意了!
  18. 在共享主机上使用Screen for Human Beings:Byobu
  19. codeforces 1567 C. Carrying Conundrum
  20. mongodb根据_id进行查询

热门文章

  1. Web前端开发技术栈(前端干货)
  2. html 网页地图集制作ECHARTS,在页面使用echarts的地图(解决地图不完整)
  3. 云和恩墨校园招聘开始啦!
  4. php获取两个时间戳之间相隔多少天多少小时多少分多少秒
  5. 89年女孩,工作在上海征婚
  6. CSS3的2D动画属性
  7. 小程序学习历程(二):注册小程序测试号
  8. 直播电商平台开发,video组件实现视频弹幕功能
  9. 卡尔曼滤波算法及C语言实现_源代码
  10. 鬼吹灯java攻略_密室逃脱鬼吹灯攻略完美过关图文详解