当前位置:首页 > 经验 >

elasticsearch 别名(elasticsearch使用场景)

来源:原点资讯(www.yd166.com)时间:2022-11-04 04:20:36作者:YD166手机阅读>>

序言

Elasticsearch提供了很多开发与运维便利的特性,很多特性看起来微不足道,需要时感慨真是卧虎藏龙。以下围绕Elasticsearch提供的别名特性展开,主要探讨几个方面:

  • 别名的应用类型
  • 别名的应用场景

elasticsearch 别名,elasticsearch使用场景(1)

别名本质是一种内置代理

需求背景

早期基于Lucene自主开发搜索应用,定期重新生成索引,之后应用访问平滑的切换,需要做一大堆的辅助工作,后接触到Elasticsearch,提供了索引别名特性,很容易完成切换。

应用场景

Elasticsearch提供了两种别名机制:

  • 索引别名
  • 字段别名

索引别名

Elasticsearch索引本质上是个虚拟的空间,本后的实际数据存储查询都是由分片完成,索引访问索引本身也是通过索引代理实现,可以这样理解,默认索引别名就是索引名称本身。

索引别名,应用在索引访问层面。

  • 应用索引重建切换

在应用系统中,索引需要定期维护,如索引重建,重建时为了不影响线上系统应用,一般会重新创建新的索引,待新索引数据重建完成,就需要无缝的替换掉原有索引,这个时候就需要引入索引别名

elasticsearch 别名,elasticsearch使用场景(2)

索引重建切换

  • 应用索引外部隔离

互联网行业中,典型的如电商订单场景,有实时订单与历史订单;常规设计有实时订单索引与历史订单索引分开,实时索引存储最近未完成的订单数据,如最近30天内;历史索引则相当于全量的订单数据,相比实时会有一些延迟,历史的数量非常的庞大,一般也会拆分成很多个索引,访问历史索引数据可以通过别名来指定,绑定所有历史索引,而不用人工指定索引查询,这带来了很便利。

elasticsearch 别名,elasticsearch使用场景(3)

历史订单索引别名绑定隔离

  • 应用索引内部隔离

索引创建多了,集群需要管理更多的元数据,消耗更多的管理节点资源,如果索引本身数量不是很大,可以将很多数据合并到一个索引中,对外采用多别名的方式隔离,每个别名仅限其中某些类型的数据访问。

elasticsearch 别名,elasticsearch使用场景(4)

别名绑定索引内部隔离,某电商商品内部隔离

字段别名

字段别名,更容易理解,应用在字段访问层面。

  • 字段代理查询

在传统关系型数据库中,由于业务原因,早期设计数据表时,字段与业务的映射是基于某种场景需求,后期又增加了更多的数据字段,原来的字段命名与新的会有很多奇异,造成一些开发与设计困扰,在Elasticsearch中,一样有此问题,所以可以通过字段别名替代,消除这种歧义。

  • 注意字段别名不能直接更新,可直接更新别名指向的字段
技术实现

Elasticsearch提供的别名API非常简单,相当容易理解。

索引别名

  • 索引别名创建,简单代理场景实现

#为索引myindex_001创建别名myindex PUT /myindex_001/_alias/myindex #原有索引访问方式 GET myindex_001/_search #通过别名访问方式 GET myindex/_search

  • 索引别名创建,绑定多个索引场景实现

#为索引myindex_001~005 绑定相同别名 myindex PUT myindex_001/_alias/myindex PUT myindex_002/_alias/myindex PUT myindex_003/_alias/myindex PUT myindex_004/_alias/myindex PUT myindex_005/_alias/myindex #通过别名访问所有索引 GET myindex/_search

elasticsearch 别名,elasticsearch使用场景(5)

单个索引别名绑定多个索引

  • 索引别名创建,限定索引内容查询场景实现

#创建索引myuser_001的别名userid_12,限定访问user_12的数据 PUT /myuser_001/_alias/user_12 { "routing" : "12", "filter" : { "term" : { "user_id" : 12 } } } #通过别名访问所有索引 GET user_12/_search

字段别名

  • 字段别名创建,简单代理场景实现

#创建字段别名索引 mytrips_001 PUT mytrips_001 { "mappings": { "properties": { "distance": { "type": "long" }, "route_length_miles": { "type": "alias", "path": "distance" }, "transit_mode": { "type": "keyword" } } } } #填充数据 POST mytrips_001/_doc { "distance":200, "transit_mode":"huoche" } #字段别名限制查询 GET /mytrips_001/_search { "query": { "range" : { "route_length_miles" : { "gte" : 110 } } } } 注意事项

索引别名

索引别名确实相比过去自主实现切换确实代理了很多便利,但也不可以大规模混乱使用,使用时注意几点

  • 原有索引名称命名要规范有规律可循,创建别名绑定时,容易归类
  • 索引别名可绑定多个索引,单个索引也可绑定多个索引别名,注意控制双向绑定的数量

字段别名

字段别名限制在查询领域,若是数据更新还是需要更新原有的数据字段,否则会出错。

结语

课程

Elasticsearch产品很注重实战便利,一方面降低了我们原有应用系统的复杂度,一方面减少了我们产品接入的成本。Elastic Stack是一个很庞大的数据产品系列,自主学习需要花费很多精力与金钱,为此我们设计了很多对应课程系列,面向多种用户层面,面向企业客户,面向个体用户。 [《ES训练营第一期:Elastic入门到进阶实战》](https://ke.qq.com/course/2328146?tuin=d3fd9a94)是我们面向个体用户最简单的课程系列之一。课程内容来源于我们的实际工作中提炼,与当下很多课程属于学院派不一样,我们知晓项目实际运用的需求。

加入我们的课程VIP学习计划

内容

内容来源于笔者实际工作中运用多种技术栈实现场景需求,得出的一些实战经验与总结思考,提供后来者借鉴参考,请勿抄袭,内容原创,转载请注明。

关于

李猛(ynuosoft),Elastic-stack产品深度用户,通过Elastic工程师认证,2012年接触Elasticsearch,对Elastic-Stack技术栈开发、架构、运维等方面有深入体验,实践过多种Elastic项目,最暴力的大数据分析应用,最复杂的业务系统应用;业余为企业提供Elastic-stack咨询培训以及调优实施;多年实战经验,爱捣腾,擅长大数据,机器学习,系统架构领域。

深圳星图智能 星图智能是Elastic官方MSP技术合作伙伴

栏目热文

elasticsearch 重要吗(elasticsearch 为啥快)

elasticsearch 重要吗(elasticsearch 为啥快)

问题1:开发不规范。我们这边es 都是我们在推,很多开发不会用或者用的不规范!问题2:不管性能,用起来再说!场景1:我们...

2022-11-04 04:56:37查看全文 >>

elasticsearch用什么语言(elasticsearch是用什么语言写的)

elasticsearch用什么语言(elasticsearch是用什么语言写的)

背景“检索”是很多产品中无法绕开的一个功能模块,当数据量小的时候可以使用模糊查询等操作凑合一下,但是当面临海量数据和高并...

2022-11-04 04:20:32查看全文 >>

elasticsearch是什么东西(elasticsearch是干啥的)

elasticsearch是什么东西(elasticsearch是干啥的)

Elasticsearch的简介ElasticSearch:智能搜索,分布式的搜索引擎是ELK的一个组成,是一个产品,而...

2022-11-04 04:22:53查看全文 >>

elasticsearch的概念(elasticsearch 是啥)

elasticsearch的概念(elasticsearch 是啥)

Elasticsearch核心概念Near Realtime (NRT) 近实时:数据提交索引后,立马就可以搜索到。Cl...

2022-11-04 05:05:24查看全文 >>

elasticsearch重要吗(为什么要elasticsearch)

elasticsearch重要吗(为什么要elasticsearch)

前提人工智能、大数据快速发展的今天,对于 TB 甚至 PB 级大数据的快速检索已然成为刚需,大型企业早已淹没在系统生成的...

2022-11-04 05:04:41查看全文 >>

elasticsearch怎么用(elasticsearch客户端操作)

elasticsearch怎么用(elasticsearch客户端操作)

本章将介绍:Elasticsearch的作用,搭建elasticsearch的环境(Windows/Linux),Ela...

2022-11-04 04:23:10查看全文 >>

如何查看elasticsearch(elasticsearch 7中文教程)

如何查看elasticsearch(elasticsearch 7中文教程)

Elasticsearch加载数据我们要想完成高效的搜索任务,需要ES的支持因为数据库的模糊查询效率太低了我们就是说,我...

2022-11-04 04:35:10查看全文 >>

为什么使用elasticsearch(elasticsearch快速入门)

为什么使用elasticsearch(elasticsearch快速入门)

搜索是现代软件必备的一项基础功能,而 Elasticsearch 就是一款功能强大的开源分布式搜索与数据分析引擎。它可以...

2022-11-04 05:02:59查看全文 >>

国庆70周年歌曲是哪些(国庆70周年主题歌曲)

国庆70周年歌曲是哪些(国庆70周年主题歌曲)

10月6日至8日,《国乐咏中华》音乐会在上海大剧院国庆档连续奏响。由特邀指挥大师汤沐海与驻团指挥姚申申分别执棒,音乐会从...

2022-11-04 04:57:11查看全文 >>

国庆70周年儿童独唱(70周年国庆节儿童唱歌)

国庆70周年儿童独唱(70周年国庆节儿童唱歌)

你唱过我唱过,响彻七十年代的儿童歌曲《前进!毛主席的红小兵》,...

2022-11-04 05:05:17查看全文 >>

文档排行