暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

ElasticSearch 简介

纪鑫鑫 2021-06-28
617

点击上方蓝字关注我们

什么是Elasticsearch?

        

        Elasticsearch 是一个分布式的开源搜索和分析引擎,适用于所有类型的数据,包括文本、数字、地理空间、结构化和非结构化数据。Elasticsearch 在 Apache Lucene 的基础上开发而成,由 Elasticsearch N.V.(即现在的 Elastic)于 2010 年首次发布。Elasticsearch 以其简单的 REST 风格 API、分布式特性、速度和可扩展性而闻名,是 Elastic Stack 的核心组件;Elastic Stack 是适用于数据采集、充实、存储、分析和可视化的一组开源工具。人们通常将 Elastic Stack 称为 ELK Stack(代指 Elasticsearch、Logstash 和 Kibana),目前 Elastic Stack 包括一系列丰富的轻量型数据采集代理,这些代理统称为 Beats,可用来向 Elasticsearch 发送数据。

着重功能就是用来做数据的检索和分析,包含但不仅以下功能:

应用程序搜索

网站搜索

企业搜索

日志处理和分析

基础设施指标和容器监测

应用程序性能监测

地理空间数据分析和可视化

安全分析

业务分析


而且,所有的这些功能被集成到一台服务器,你的应用可以通过简单的RESTful API、各种语言的客户端甚至命令行与之交互。上手Elasticsearch非常简单,它提供了许多合理的缺省值,并对初学者隐藏了复杂的搜索引擎理论。它开箱即用(安装即可使用),只需很少的学习既可在生产环境中使用。Elasticsearch在Apache 2 license下许可使用,可以免费下载、使用和修改。 

随着知识的积累,你可以根据不同的问题领域定制Elasticsearch的高级特性,这一切都是可配置的,并且配置非常灵活。


mysql也能实现Elasticsearch的功能 为什么还需要Elasticsearch

        mysql当然也能实现数据的搜索和分析 例如求年龄的平均值 avg 分组group by 等等 但是我们说术业有专攻,而mysql专攻于持久化的存储与管理 ,也就是crud 。如果真的使用mysql做海量数据的检索和分析,Elasticsearch更在行,能在秒级给我们响应我们感兴趣的数据,而mysql单表达到百万数据,我们需要进行一些检索和查询都是一些比较慢的操作,比较浪费性能。例如在一些电商系统里面,需要对商品的不同属性按照不同的关键字来检索商品,我们如果用mysql来做,mysql肯定承受不了那么大的压力,而Elasticsearch可以帮我们做到这些。


底层

        

        Elastisearch的底层是开源库Lucene。但是你没法直接调用lucene,必须自己写代码去调用他的接口。Elasticsearch是lucene的封装,提供了REST API的操作接口 开箱即用。


基本概念


1、Index(索引)

动词,相当于mysql中的insert

名词,相当于mysql的Database


2、Type(类型)7.0废弃

在index(索引)中,可以定义一个或多个类型,类似于mysql中的table,同一种类型的数据放在一起


3、 Document(文档)

保存在某个索引(Index)下、某种类型(Type)的一个数据(Document),文档是json格式的数据,Document1相当于mysql中某个table数据


4、倒排索引

分词:将整句拆分为单词


官方文档


https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html




点击卡片关注公众号,了解更多技术内容!


点个在看你最好看


文章转载自纪鑫鑫,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论