美文网首页码农庄园
Elasticsearch搜索引擎原理理解通俗易懂

Elasticsearch搜索引擎原理理解通俗易懂

作者: 小马过河R | 来源:发表于2020-08-18 15:36 被阅读0次

    记得小马最早期刚参加工作的时候全文索引用的是Sphinx。 当一个功能需要对表中的text varchar等文本进行like查询时,MySQL全表扫描很慢,需要Sphinx。Sphinx能解决性能和中文分词问题。

    Sphinx是一款基于SQL的高性能全文检索引擎,Sphinx的性能在众多全文检索引擎中也是数一数二的,利用Sphinx,我们可以完成比数据库本身更专业的搜索功能,而且可以有很多针对性的性能优化。

    使用流程

    1.PHP先把要搜索的短语发给sphinx服务器(用API发起请求),sphinx服务器返回的是记录的ID

    2.PHP用sphinx返回的ID查询数据库。

    Elasticsearch是啥

    百科如是说:

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

    小马本来想自己整理下这块东西,无意间看到一篇漫画式的文章,特别清晰而且通俗易懂,忍不住引用了,为作者的良苦用心点赞。

    原文地址:终于有人把Elasticsearch原理讲透了!

    倒排索引

    可以通俗理解为使用文本内分词关键字建立索引,搜索时先找到标题再找到内容(百度谷歌搜索引擎原理)。

    搜索引擎原理

    Elasticsearch简介


    ES基本概念

    吕老师:之前我们说过,Elasticsearch 把操作都封装成了 HTTP 的 API,我们只要给 Elasticsearch 发送 HTTP 请求就行。

    比如使用curl -XPUT 'http://ip:port/poems',就能建立一个名为 Poems 的索引,其他操作也是类似的。

    Elasticsearch 分布式原理

    ELK系统

    吕老师:但是如果日志接入了ELK 系统就不一样。比如系统运行过程中,突然出现了异常,在日志中就能及时反馈,日志进入 ELK 系统中,我们直接在 Kibana 就能看到日志情况。如果再接入一些实时计算模块,还能做实时报警功能。

    es集群+elk搭建+kafka搭建分布式日志收集系统。

    总结

    反向索引又叫倒排索引,是根据文章内容中的关键字建立索引。

    搜索引擎原理就是建立反向索引。

    Elasticsearch 在 Lucene 的基础上进行封装,实现了分布式搜索引擎。

    Elasticsearch 中的索引、类型和文档的概念比较重要,类似于 MySQL 中的数据库、表和行。

    Elasticsearch 也是 Master-slave 架构,也实现了数据的分片和备份。

    Elasticsearch 一个典型应用就是 ELK 日志分析系统。

    Elasticsearch如何再项目中配合MySQL使用

    像的处理流程上面已经介绍了,那ES怎么结合项目呢?以下的意思是直接同步DB数据,然后即可以同时支持查询考了。但应该会有更高效的协作方式,你觉得呢?

    相关文章

      网友评论

        本文标题:Elasticsearch搜索引擎原理理解通俗易懂

        本文链接:https://www.haomeiwen.com/subject/zhxkjktx.html