作者回复: 你可以自己对查询去做一些分类。 例如terms查询是用于结构化数据的查询。全文用match查询。而bool属于一种复合查询。可以结合terms查询和match查询。 我建议你先把查询相关的课都听一遍,然后在去尝试做分类。有一些查询是有功能上的重合的,自己去做了分类,可能更加容易加深理解。
作者回复: 后面会讲父子关系的查询
作者回复: ES中也会对一些查询实现缓存,所以会存在第一次查询相对比较慢的情况
作者回复: 这个可以用function score实现,看具体章节的视频
作者回复: 应该是不行的,如果你有这个需求,可以把这个id,映射到一个额外的字段,然后进行range查询
作者回复: 一个公司有三个同名的员工,这不算去重吧?如果是同一个人,那就不应该重复写入。
作者回复: 查询相同的文档集,按理算分不会变的。 除非 1. 每次查询,你有增加或者删除文档 2. 你的主分片书不是1,你每次删除全部数据,重新bulk写入后再做的查询
作者回复: query和filter的区别在后续课程中会有讲解。 例如在bool查询中,filter子句就属于filter,must_not也属于filter。 你贴出的,属于是一个query。 filter会使用cache,性能会更加好。
作者回复: es源码不做讲解了。重构es代码也不是我们所能控制的 至于优化方面,会从数据建模和集群配置等方面进行一些讲解。