首页 > 编程知识 正文

elasticsearch存储,elasticsearch6教程

时间:2023-05-04 09:42:42 阅读:9513 作者:2787

首先,标题答案:ElasticSearch不支持事务!

什么是电子搜索? ElasticSearch是分布式、高性能、高可用性、可伸缩性和rest风格的搜索和数据分析引擎,几乎是实时全文搜索引擎。 从添加数据到搜索只有一秒钟的延迟。 查询是实时的。 这种强大的功能来自于其数据结构:的转置索引。 但是,ES不支持事务

什么是全文检索? 全文检索是指计算机索引程序通过扫描文章中的各个单词,为各个单词编制索引,记录该单词在文章中出现的次数(频率)和位置,用户询问后,检索程序提前编制好的索引

什么是倒回索引? 倒排索引是一种有助于ES找到目标数据的数据结构,可从倒排索引中查询各种查询。 请注意,此处的索引不是MySQL数据库中的索引

索引中的四个重要元素是:词条、文档ID、频率和位置

词条:数据存在于索引库中,因此需要分词,这也是ES查询加速的原因之一,可以使用很多分词器

文档ID:指向此词条所在行的ID

频率:频率是指该词条出现的次数

位置:位置是指该词条出现在哪个具体位置

想想看。 你文章的数据一个个都放在库中。 搜索的时候找到这个词不是很容易吗?

为什么不在MySQL中实现全文搜索? MySQL是传统的关系数据库,是当前web APP应用程序开发中最受欢迎的关系数据库。 支持事务。 但是,MySQL也有缺点,如果需要对全文进行模糊搜索,MySQL的性能非常低。 例如,以下场景:

如果有手机信息表,里面有一亿个数据,我想从中搜索我想要的手机。 比如,“华为手机”“1万元以下”。 如果用MySQL实现的话,可能会写: select * fromphonewherephone _ brand like ' %关键字% ' . 但是,如果我这个时候想换“1万元以下”和“华为手机”,只要换个顺序,Like关键词就不一致了。 此外,Like是全表扫描操作,如果数据量大,这将非常消耗性能。 此时,需要通过电子搜索解决

正在处理e-lastic search和MySQL的APP应用场景:首先在MySQL中存储数据,然后在e-lastic search中存储,在ES中搜索

为什么ElasticSearch这么厉害? 不能取代MySQL吗? 虽然MySQL对数据全文检索有点无能为力,但由于事务功能的特性,可以保证不会出现不洁的数据。 另一方面,ES不支持事务,因此不太适合存储原始数据。 因此,工作中两者并用,一方面利用MySQL保证原始数据的安全性,另一方面利用ElasticSearch进行全文检索。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。