知方号

知方号

大白话告诉你Elasticsearch到底是干嘛的?<机井是干嘛的>

大白话告诉你Elasticsearch到底是干嘛的?

文章目录 一、什么是搜索二、检索方式1、数据库2、倒排索引 三、什么是Elasticsearch四、Elasticsearch能干嘛五、Elasticsearch使用场景

一、什么是搜索

通俗来讲就是在任何场景下你通过输入你想要搜索的内容,然后就期望找到相关度与之匹配的。 比如:

百度、Google等搜索引擎站内搜索(垂直搜索):淘宝等电商网站/app、招聘网站、新闻网站等 二、检索方式 1、数据库

2、倒排索引

知道了数据库方式的缺点后再来看Elasticsearch所采取的倒排索引方式。

其实倒排索引本质上是一种数据结构,而不是我上面画的表格,我这里是为了容易理解,就采取了表格代理。这种方式原理上比较好理解。倒排索引后面会出专题来说明。

三、什么是Elasticsearch

先说下lucene,lucene就是一个jar包,里面封装好了一些复杂的API以及包含了倒排索引,数据存储到磁盘。也就是说lucene是一种采取了倒排索引的方式进行高效率搜索的框架。但是它api复杂,且不支持集群。而Elasticsearch完美解决了lucene的这些缺点,它天然支持集群,api相对简单,开箱即用。底层还是封装的lucene。

四、Elasticsearch能干嘛 分布式搜索引擎和数据分析引擎

搜索引擎:百度、Google、电商网站等 数据分析引擎:用户行为埋点,常用于大数据分析?你没发现你在某宝或某东搜个东西,后面都给你推送这类的吗?

全文检索、结构化搜索以及聚合 全文检索:全部内容里找包含的关键字: SELECT * FROM table WHERE name LIKE “%小米%”; 结构化搜索:也称等值匹配。 SELECT * FROM table WHERE name = “小米手机”; 聚合:比如我们分析每一个商品分类下有多少个商品。 SELECT category_id, COUNT(*) FROM table GROUP BY category_id; 海量数据近实时处理

ES自动可以将海量数据分散到多台服务器上去存储和检索,分布式。 海量数据的处理:分布式以后,就可以采用大量的服务器去存储和检索数据,自然而然就可以实现海量数据的 近实时:检索个数据要花费好几分钟这就不叫近实时,ES可以在秒级别对数据进行搜索和分析。

五、Elasticsearch使用场景 百度、维基百科、新闻、电商、Stack Overflow等各大网站的用户行为日志(比如你搜个商品、你点击某个连接等)BI(Business Intelligence:商业智能),数据分析、挖掘GithubELK

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。