随着业务的深入,我们的需求越来越复杂,对应的会带来一些问题.Elasticsearch 的Alias 就是用于解决一些特殊场景的工具Aliascuiyaonan2000@163.com
Elasticsearch别名分为索引别名和字段别名.应用场景我觉得都差不多,如果你熟悉了别名在索引中的应用场景,那字段也就依葫芦画瓢了cuiyaonan2000@163.com
参考资料:
另:
Elasticsearch索引本质上是个虚拟的空间,实际数据存储查询都是由分片完成,通过索引名访问索引本身也是通过索引代理实现,可以这样理解,索引名就是默认的别名.
如下所示当我们需要对一个索引进行重构,且不影响正常业务的时候,可以使用索引别名,因为别名可以指向多个索引cuiyaonan2000@163.com

如下所示可以使用索引进行业务上的隔离,只不过是针对多个索引的的业务逻辑拆分

如下所以同样也是业务逻辑拆分,只是针对的是同一个索引的不同字段内容(索引创建多了,集群需要管理更多的元数据,消耗更多的管理节点资源,如果索引本身数量不是很大,可以将很多数据合并到一个索引中,对外采用多别名的方式隔离,每个别名仅限其中某些类型的数据访问。)

大概同一个意思,只是字段索引同理可以指代不同索引的不同字段.
给索引创建一个别名
- #给指定的索引关联一个别名
- PUT cuiyaonan_index/_alias/myalias
获取所有的别名与索引的对应关系
GET _cat/aliases

如上的比较简单知识针对单一索引的增删.如下是删除一个索引别名,同时增加一个索引别名,当然也是可以独立的(可以重复增加remove和add)
- POST /_aliases
- {
- "actions": [
- {
- "remove": {
- "index": "索引名称",
- "alias": "索引别名"
- }
- },
- {
- "add": {
- "index": "索引名称",
- "alias": "索引别名"
- }
- },
- {
- "add": {
- "index": "cuiyaonan_index",
- "alias": "566"
- }
- },
- {
- "add": {
- "index": "cuiyaonan_index",
- "alias": "123"
- }
- }
- ]
- }
根据索引获取对应的别名
GET cuiyaonan_index/_alias

限制别名能查到的数据 ,如下所示: 给索引test1创建别名alias2.同时alias2只能查询到user为cuiyaonan2000@163.com的数据
- POST /_aliases
- {
- "actions" : [
- {
- "add" : {
- "index" : "test1",
- "alias" : "alias2",
- "filter" : { "term" : { "user" : "cuiyaonan2000@163.com" } }
- }
- }
- ]
- }
可以看到字段别名其实,就是讲一个字段的类型设置为alias
- PUT trips
- {
- "mappings": {
- "_doc": {
- "properties": {
- "distance": {
- "type": "long"
- },
- "route_length_miles": {
- "type": "alias",
- "path": "distance"
- },
- "transit_mode": {
- "type": "keyword"
- }
- }
- }
- }
- }