Elasticsearch学习笔记(一):简介

   介绍Elasticsearch之前,需要先了解以下几个问题:

一:什么是搜索?

   搜索,就是在任何场景下,找寻你所需要的信息。这个时候,会输入一些你想要搜索的关键字,然后期望找到这个关键词相关信息的过程。

二:用数据库进行搜索会怎么样?

  做软件开发的朋友们,通常都是把数据存储在数据库当中,比方说电商网站的商品信息,招聘网站的职位信息,新闻网站的新闻信息等等。而且,在做网站的站内搜索的过程当中,我们都会经常使用数据库进行搜索的。

  那么,这种搜索的弊端是什么:1.比如说,数据库当中存储了大量的商品描述信息,有些商品的描述信息会很长,那么,我要在这些描述中搜索包含牙膏的信息,会怎么样?数据库是正排索引,那么就要扫描所有的商品描述信息,找到包含牙膏的文本,这个性能可以说是相当差的;2.数据库搜索并不能将搜索的关键词拆分开来进行搜索,从而尽可能的去搜索出所有你想要的结果,比如说,我搜索“生化机”,就搜索不出“生化危机”。

三:什么是全文检索和lucene?

  (1)  全文检索:全文检索可以理解为倒排索引。什么是倒排索引呢?

                先看看什么是正排索引,正排索引可以看作是文档ID到文档内容的映射关系。假设我搜索“生化危机”,那么,它会到每一个文档ID对应的文档当中找寻是否包含生化危机。而倒排索引,则可以看成是文档的关键词到文档ID的映射关系,如果搜索生化危机,只需要查询包含生化危机的关键字,然后就可以直接找到所有包含该关键词的文档ID的列表。

(2)Lucene

                 Lucene就是一个jar包,里面封装好了各种建立倒排索引,以及进行搜索的代码,包括各种算法。用Lucene,我们可以去将已有的数据建立索引,Lucene会在本地磁盘上面,给我们组织索引的数据结构,另外,也可以使用Lucene对磁盘上的数据进行搜索。

四:什么是Elasticsearch?

    介绍之前,有这样一种情况。我们有一个T的数据,两台机器,每一台机器能够存放500G数据,原始的做法是什么样的呢?如下图:

     

        那么,这其中是有很多要处理的,也很棘手的问题,首先,前台到两台机器的通信过程,协调过程就很麻烦。其次,怎样保证数据的高可用性,如果一台机器宕机了怎么办。同时,怎么样去建立合适的索引?再有,如果数据量再大,怎么进行扩容,又是一个很麻烦的过程。那么,就可以引入Elatsicsearch是什么了。

      

     总结:ES是一个分布式,高可用,高性能,可伸缩的搜索和分析系统。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值