Elasticsearch特性与应用场景

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: Elasticsearch是著名的开源分布式搜索和数据处理平台,是一个基于Lucene的分布式、实时、全文搜索系统,其稳定、可靠、高可用、可大规模扩展等特性,使得Elasticsearch的应用十分广泛。特别是结合Logstash、Kibana形成的ELK套件,更是在日志收集和可视化场景被大规模应用。本文是Elasticsearch系列的第一篇,将会重点介绍Elasticsearch的核心特性以及应用场景。

Elasticsearch是著名的开源分布式搜索和数据处理平台,是一个基于Lucene的分布式、实时、全文搜索系统,其稳定、可靠、高可用、可大规模扩展等特性,使得Elasticsearch的应用十分广泛。特别是结合Logstash、Kibana形成的ELK套件,更是在日志收集和可视化场景被大规模应用。

本文是Elasticsearch系列的第一篇,将会重点介绍Elasticsearch的核心特性以及应用场景。

01

Elasticsearch是什么?

Elasticsearch是一个开源的分布式搜索引擎,构建于Apache Lucene之上,提供出色的搜索功能,目前被业界广泛应用于日志系统、搜索推荐系统等场景,经历了众多大型互联网公司的实践检验,是大数据处理领域举足轻重的一员。

02

Elasticsearch的特性

  • 实时
    理论上数据从写入Elasticsearch到数据可以被搜索只需要1秒左右的时间,实现准实时的数据索引和查询。
  • 分布式、可扩展
    天生的分布式的设计,数据分片对于应用层透明,扩展性良好,可以轻易的进行节点扩容,支持上百甚至数百的服务器节点,支持PB级别的数据存储和搜索。
  • 稳定可靠
    Elasticsearch的分布式、数据冗余特性提供更加可靠的运行机制,且经过大型互联网公司众多项目使用,可靠性得到验证。
  • 高可用
    数据多副本、多节点存储,单节点的故障不影响集群的使用。
  • Rest API
    新版本的Elasticsearch提供标准的Rest API,这使得所有支持Rest API的语言都能够轻易的使用Elasticsearch,具备多语言通用的支持特性,易于使用。
  • 高性能
    Elasticsearch底层构建基于Lucene,具备强大的搜索能力,即便是TB级别的数据依然能够实现秒级的搜索。

03

Elasticsearch应用场景

  • 作为独立数据库系统
    Elasticsearch本身提供了数据持久化存储的能力,并且提供了增删改查的功能,在某些应用场景下可以直接当做数据库系统来使用,既提供了存储能力,又能够同时具备搜索能力,整体技术架构会比较简单,例如博客系统、评论系统。需要注意的是,Elasticsearch不支持事务,且写入的性能相对关系型数据库稍弱,所有需要使用事务的场景都不能将Elasticsearch当做唯一的数据库系统,这使得这种使用场景很少见。

  • 搭建日志系统
    日志系统应该是Elasticsearch使用最广泛的场景之一了,广泛使用的ELK套件(Elasticsearch、Logstash、Kibana)是日志系统最经典的案例,使用Logstash进行日志收集,Elasticsearch存储和查询应用日志,Kibana提供日志的可视化搜索界面。

  • 搭建数据分析系统
    Elasitcsearch支持数据分析,例如强大的数据聚合功能,提供诸如直方图、统计分组、范围聚合等方便使用的功能,能够快速实现一些数据报表等功能。
  • 搭建搜索系统
    Elasticsearch为搜索而生,用于搭建全文搜索系统是自然而然的事情,它能够提供快速的索引和搜索功能,还有相关的评分功能、分词插件等,支持丰富的搜索特性。这种情况下,一般作为系统的一部分与其他组件搭配使用,典型的应用场景如:
  • 同步Mysql的数据到Elasticsearch中,Elasticsearch提供普通的查询功能,Mysql提供事务写操作。

  • 同步Hbase的数据到Elasticsearch,查询时先通过查询Elasticsearch获取到Hbase的rowkey,再通过rowkey到Hbase中查询到完整数据。


这种应用场景下,实际上是将Elasticsearch优秀的全文搜索的性能与其他组件的优秀特性结合起来,例如Mysql事务特性,Hbase海量数据存储的特性等。每个组件都有自己独有的特性,没有完全一站式搞定所有功能的组件存在,利用好组件的各个特性,结合使用,才是使用开源组件的正确姿势。Elasticsearch最强大的特性是"搜索"。

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
5月前
|
运维 监控 Java
探索Elasticsearch在Java环境下的全文检索应用实践
【6月更文挑战第30天】在大数据背景下,Elasticsearch作为分布式搜索分析引擎,因其扩展性和易用性备受青睐。本文指导在Java环境中集成Elasticsearch,涉及安装配置、使用RestHighLevelClient连接、索引与文档操作,如创建索引、插入文档及全文检索查询。此外,还讨论了高级查询、性能优化和故障排查,帮助开发者高效处理非结构化数据全文检索。
162 0
|
2月前
|
机器学习/深度学习 存储 监控
Elasticsearch 在日志分析中的应用
【9月更文第2天】随着数字化转型的推进,日志数据的重要性日益凸显。日志不仅记录了系统的运行状态,还提供了宝贵的洞察,帮助企业改进产品质量、优化用户体验以及加强安全防护。Elasticsearch 作为一个分布式搜索和分析引擎,因其出色的性能和灵活性,成为了日志分析领域的首选工具之一。本文将探讨如何使用 Elasticsearch 作为日志分析平台的核心组件,并详细介绍 ELK(Elasticsearch, Logstash, Kibana)栈的搭建和配置流程。
247 4
|
3天前
|
存储 SQL 监控
|
3天前
|
自然语言处理 监控 数据可视化
|
27天前
|
机器学习/深度学习 存储 运维
探索未来:结合机器学习功能拓展Elasticsearch应用场景
【10月更文挑战第8天】随着数据量的爆炸性增长,高效的数据存储、检索和分析变得越来越重要。Elasticsearch 作为一个分布式的搜索和分析引擎,以其强大的全文搜索能力、实时分析能力和可扩展性而闻名。近年来,随着机器学习技术的发展,将机器学习集成到 Elasticsearch 中成为了一种新的趋势,这不仅增强了 Elasticsearch 的数据分析能力,还开拓了一系列新的应用场景。
47 7
|
24天前
|
人工智能
云端问道12期-构建基于Elasticsearch的企业级AI搜索应用陪跑班获奖名单公布啦!
云端问道12期-构建基于Elasticsearch的企业级AI搜索应用陪跑班获奖名单公布啦!
168 2
|
4月前
|
存储 人工智能 自然语言处理
阿里云Elasticsearch AI场景语义搜索最佳实践
本文介绍了如何使用阿里云Elasticsearch结合搜索开发工作台搭建AI语义搜索。
17291 68
|
6月前
|
缓存 关系型数据库 Java
不要将数据库中的“分库分表”理论盲目应用到 Elasticsearch
不要将数据库中的“分库分表”理论盲目应用到 Elasticsearch
49 0
|
3月前
|
运维 监控 数据可视化
Elasticsearch全观测技术解析问题之面对客户不同的场景化如何解决
Elasticsearch全观测技术解析问题之面对客户不同的场景化如何解决
|
3月前
|
存储 自然语言处理 API
Elasticsearch 在语音识别领域的应用
【8月更文第28天】随着语音助手和智能设备的普及,语音识别技术已经成为人们日常生活中不可或缺的一部分。Elasticsearch 作为一种高性能的搜索和分析引擎,在语音识别领域可以发挥重要作用,尤其是在提供快速准确的语音搜索结果方面。本文将介绍如何利用 Elasticsearch 来增强语音识别系统的搜索能力,并通过示例代码展示具体实现。
77 0