ElasticSearch(1) -- 简述

tech2022-09-12  88

1. 简介

ES官网

1.1 介绍

Elasticsearch是一个基于Lucene的搜索服务器、提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。

1.2 创始人

Shay Banon (谢巴农)

1.2 Elasticsearch可以做什么

1.2.1 信息检索

电商 / 招聘 / 门户 / 论坛

1.2.2 企业内部系统搜索

关系型数据库使用like进行模糊检索,会导致索引失效,效率低下可以基于Elasticsearch来进行检索,效率杠杠的 OA / CRM / ERP

1.2.3 数据分析引擎

Elasticsearch 聚合可以对数十亿行日志数据进行聚合分析,探索数据的趋势和规律。

1.3 Elasticsearch特点

1.3.1 海量数据处理

大型分布式集群(数百台规模服务器)处理PB级数据小公司也可以进行单机部署

1.3.2 开箱即用

简单易用,操作非常简单快速部署生产环境

1.3.3 作为传统数据库的补充

传统关系型数据库不擅长全文检索(MySQL自带的全文索引,与ES性能差距非常大)传统关系型数据库无法支持搜索排名、海量数据存储、分析等功能Elasticsearch可以作为传统关系数据库的补充,提供RDBM无法提供的功能

2. 使用场景

ElaticSearch简称为es,是一个开源的可扩展的全文检索引擎服务器,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。es使用Java开发并使用Lucene作为其核心来实现索引和搜索的功能,但是它通过简单的RestfulAPI和javaAPI来隐藏Lucene的复杂性,从而让全文搜索变得简单。 使用场景:

第一种 已经上线的系统,某些模块的搜索功能是使用数据库搜索实现的,但是已经出现性能问题或者不满足产品的高亮相关度排序的需求时候,就会对系统的搜索功能进行技术改造,使用全文检索,而es就是首选。针对这种情况企业改造的业务流程如下图: 第二种 系统新增加的模块,产品一开始就要实现高亮相关度排序等全文检索的功能或者技术分析觉得该模块使用全文检索更适合。针对这种情况企业改造的业务流程如下图:

2.1 哪些公司在使用Elasticsearch

京东携程去哪儿58同城滴滴今日头条小米哔哩哔哩联想思科Airbusebay暴雪德国大众微软SymantecFacebookBBC英伟达UberIBMGithubDocker

3. ElasticSearch使用案例

2013年初,GitHub抛弃了Solr,采取ElasticSearch 来做PB级的搜索。 “GitHub使用ElasticSearch搜索20TB的数据,包括13亿文件和1300亿行代码”维基百科:启动以elasticsearch为基础的核心搜索架构SoundCloud:“SoundCloud使用ElasticSearch为1.8亿用户提供即时而精准的音乐搜索服务”百度:百度目前广泛使用ElasticSearch作为文本数据分析,采集百度所有服务器上的各类指标数据及用户自定义数据,通过对各种数据进行多维分析展示,辅助定位分析实例异常或业务层面异常。目前覆盖百度内部20多个业务线(包括casio、云分析、网盟、预测、文库、直达号、钱包、风控等),单集群最大100台机器,200个ES节点,每天导入30TB+数据新浪使用ES 分析处理32亿条实时日志阿里使用ES 构建挖财自己的日志采集和分析体系

4. ElasticSearch对比Solr

Solr 利用 Zookeeper 进行分布式管理,而 Elasticsearch 自身带有分布式协调管理功能;Solr 支持更多格式的数据,而 Elasticsearch 仅支持json文件格式;Solr 官方提供的功能更多,而 Elasticsearch 本身更注重于核心功能,高级功能多有第三方插件提供;Solr 在传统的搜索应用中表现好于 Elasticsearch,但在处理实时搜索应用时效率明显低于 Elasticsearch
最新回复(0)