ElasticSearch的实际使用场景介绍(一)

1,175 阅读2分钟

「这是我参与2022首次更文挑战的第 2 天,活动详情查看:2022首次更文挑战

本文只简单介绍ElasticSearch(简称 ES)的一些特性,着重介绍ES的使用场景

一、ElasticSearch的特性

ElasticSearch(简称 ES)是一个分布式、高扩展、近实时的搜索与数据分析引擎,它能很方便的使大量数据具有搜索、分析和探索的能力。

特性概括

  1. 高扩展

    es具有开箱即用的横向扩展的能力。随着数据量的增加及查询QPS的升高,es提供了通过增加新的数据节点来解决单点数据过多或单点查询QPS过高的问题。

  2. 近实时

    存入es的数据,从文档索引操作到文档变为可搜索状态之间的延时很短,一般只有一秒

  3. 全文搜索、查询语法丰富

    es是基于开源的Lucene来实现的,提供了丰富的查询语法及全文搜索能力。在实际的生产环境中表现优秀

二、es的实际使用场景(上)

需要丰富的查询条件时

场景

典型场景如,交易系统中商家端的数据查询能力。举个例子,在操作后台中,商家需要根据日期、状态等条件筛选订单。

在电商交易场景下,需要存储大量的订单信息。每个订单有的信息多种多样,有下单信息、支付信息,退款信息等,订单信息存储一般选用MySQL存储,数据量大时也会选择分库分表,这时候,如果需要丰富的查询条件,如:一段时间内、某个手机号/某个证件号、待使用的订单。如果使用MySQL来查询,会有复杂的联合查询的场景。当单个订单的手机号/证件号有多个时,查询复杂度也会随之上升。

如果建立一个订单主要信息的es检索库,使用es丰富的查询语句,这个场景的问题就可以很容易得到解决。

订单信息如何同步es

  1. MySQL的Binlog,分析Binlog将数据同步到ES集群中
  2. 在订单流程中触发ES的更新,直接通过ES API将数据写入到ES集群中

下篇介绍“如何保障订单的数据一致性”及 es的实际使用场景2