大家新年快乐呀,今天是开工的第一天,祝观看这篇博客的帅哥美女:虎年来到,福虎祝你鸿福齐天,万事如意;祥虎祝你财气冲天,好运无穷;吉虎祝你吉星高照,心想事成;灵虎祝你天天开心,福寿安康;朋友则祝你虎年如意,万事顺心!
自从elasticSearch更新到7.x之后,就取消了type的概念,这从结构上来讲可以说是改变了es原来的底层结构(可以这么认为),因为之前es也是参考于基本的数据库结构:库-表-行来设计的,也就是说现在的es去除了type就是相当于去除了表的设计。
为什么取消type?
所以我们就不能像以前一样每个表对应一个type了,但是这个时候又引入了一个新的概念:别名
什么是别名呢?它的到来能影响什么呢?
首先我们要理解es之前的搜索的设计:
我们要在一个库里面搜索一个关键字,我们可以直接搜索一个库下面所有的表,也就是type,但是现在这招不适用es7.x以上了,所以我们可以理解别名的作用是用来给index创建一个分组,这样我们在查询的时候就可以去分组中查询关键字,这样的结果也就是将很多的index给聚集起来一起查询,光说大家可能还不是怎么理解,下面给大家具体演示一下:
首先我们的查询是这样的:
上面的意思就是在索引为special_express_fee中查询type字段中包含顺丰的数据
但是es7.x之后如果我们新建一个special_express_fee_copy表,我们就需要用以下的方式去查询
显然是不符合全局搜索的要求的,因为它是从两个不同的索引去搜索关键字。但是我们给两个索引加上别名之后:
创建索引时加入别名定义
一个索引可以接受多个别名,而一个别名也可以映射到多个索引,当指定别名时,别名将自动扩展到添加的索引
给已创建的索引添加别名
查询别名
这样我们就将他们这些索引给添加了一个别名,这使得我们在查询的时候可以通过去查询别名的时候去进行类似于全库查询的方式去查询关键字,就像这样:
别名查询
这样通过别名去查询的方法,就相当于全库查询,查询所有索引别名为special_express_fee_all的索引信息