ElasticSearch简介和使用方法(入门)

目录

一、ElasticSearch简介

1.ElasticSearch官网:

2.ElasticSearch是做什么的?

3. Lucene 是什么?

4.什么是全文检索?

        4.1 数据分类

        4.2 非结构化数据查询方法

5.使用场景

 6. ElasticSearch核心概念

7.索引和搜索流程

二、ElasticSearch的使用

 1.windows中运行

 2.检查是否运行成功

 3.关于Head插件

 4.安装ik分词器

 5.Kibana

 6. es的增删改查操作

        6.1 操作索引库



未完待续......


一、ElasticSearch简介

1.ElasticSearch官网:

Free and Open Search: The Creators of Elasticsearch, ELK & Kibana | Elastichttps://www.elastic.co/

2.ElasticSearch是做什么的?

        ElasticSearch是一个基于Lucene的搜索服务器 ,实现全文检索。

3. Lucene 是什么?

        Lucene 是 apache 下的一个开放源代码的全文检索引擎工具包。提供了完整的查询引擎和索引引擎,部分文本分析引擎。Lucene 的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能。

4.什么是全文检索?

        简言之,全文检索就是将非结构化数据中的一部分信息提取出来,重新组织,使其变得有一定结构,然后对此有一定结构的数据进行搜索。

        想要明白什么是全文检索,需要明白一个概念:什么是非结构化数据?和非结构化数据查询方法?

        4.1 数据分类

        我们生活中的数据总体分为两种:结构化数据和非结构化数据。

  • 结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等。

  • 非结构化数据:指不定长或无固定格式的数据,如邮件,word 文档等磁盘上的文件

        4.2 非结构化数据查询方法

  • 顺序扫描法(Serial Scanning) 所谓顺序扫描,比如要找内容包含某一个字符串的文件,就是一个文档一个文档的看,对于每一个文档,从头看到尾,如果此文档包含此字符串,则此文档为我们要找的文件,接着看下一个文件,直到扫描完所有的文件。如利用 windows 的搜索也可以搜索文件内容,只是相当慢。

  • 全文检索(Full-text Search) :将非结构化数据中的一部分信息提取出来,重新组织,使其变得有一定结构,然后对此有一定结构的数据进行搜索,从而达到搜索相对较快的目的。这部分从非结构化数据中提取出的然后重新组织的信息,我们称之索引。 例如:字典。字典的拼音表和部首检字表就相当于字典的索引,对每一个字的解释是非结构化的,如果字典没有拼音表和部首检字表,在茫茫辞海中找一个字只能顺序扫描。然而字的某 些信息可以提取出来进行结构化处理,比如读音,就比较结构化,分声母和韵母,分别只有几种 可以一一列举,于是将读音拿出来按一定的顺序排列,每一项读音都指向此字的详细解释的页数。 我们搜索时按结构化的拼音搜到读音,然后按其指向的页数,便可找到我们的非结构化数据—— 也即对字的解释。 这种先建立索引,再对索引进行搜索的过程就叫全文检索(Full-text Search) 。 虽然创建索引的过程也是非常耗时的,但是索引一旦创建就可以多次使用,全文检索主要处理的是查询,所以耗时间创建索引是值得的。

5.使用场景

        对于数据量大、数据结构不固定的数据可采用全文检索方式搜索,比如百度、Google 等搜索引擎、视频网站内搜索、电商网站站内搜索等。

        比如使用关系型数据库MySQL,一张表数据量达到千万级别,这个时候要进行like查询,数据基本查不动。

 6. ElasticSearch核心概念

        索引(index):

                ElasticSearch存储数据的地方,可以理解成关系型数据库中的数据库概念。

        映射(mapping):

                mapping定义了每个字段的类型、字段所使用的分词器等。相当于关系型数据库中的表结构。

        文档(document):

                Elasticsearch中的最小数据单元,常以json格式显示。一个document相当于关系型数据库中的一行数据。

        倒排索引:

                将各个文档中的内容,进行分词,形成词条。然后记录词条和数据的唯一标识(id)的对应关系,形成的产物。

                一个倒排索引由文档中所有不重复词的列表构成,对于其中每个词,对应一个包含它的文档id列表。

                ES将写入索引的所有信息组织为倒排索引( inverted index)的结构形式。倒排索引是一种将词条映射到文档的数据结构,它与传统的关系数据库的工作方式不同。你可以认为倒排索引是面向词条的而不是面向文档的。 

        类型(type):

                一种type就像一类表。如用户表、角色表等。在Elasticsearch7.X默认type为_doc

                          注: \- ES 5.x中一个index可以有多种type。

                                  \- ES 6.x中一个index只能有一种type。

                                  \- ES 7.x以后,将逐步移除type这个概念,现在的操作已经不再使用,默认_doc

7.索引和搜索流程

        

 

二、ElasticSearch的使用

 1.windows中运行

        bin目录中双击运行elasticsearch.bat即可启动

        注:如果启动出现闪退,在 config目录中修改 elasticsearch.yml ,在最后添加一行配置:

                xpack.ml.enabled: false

        拓展:

        Elastic官网:开源搜索:Elasticsearch、ELK Stack 和 Kibana 的开发者 | Elastic

        Elasticsearch官网:Elasticsearch:官方分布式搜索和分析引擎 | Elastic

        Elastic有一条完整的产品线:Elasticsearch、Kibana、Logstash等,这三个产品就是大家常说的ELK技术栈。

        ELK常用框架:

        

 2.检查是否运行成功

        访问http://localhost:9200/ 可以看到节点信息。
 

 3.关于Head插件

        下载地址:GitHub - mobz/elasticsearch-head: A web front end for an elastic search cluster

        可再Chrome浏览器操作、查看数据库。

        

  4.安装ik分词器

        ik分词器可以分割中文语句。

        下载地址:Releases · medcl/elasticsearch-analysis-ik · GitHub

        注意:需要下载与ES对应的版本

        在elasticsearch-x.x.x\plugins中新建ik文件夹,复制elasticsearch-analysis-ik-x.x.x.zipik文件夹中,然后解压,注意,不要复制或解压到ik目录外,将解压出的·elasticsearch目录下的所有文件剪切到ik目录中,重新启动ES,可以看到分词插件被加载了:

        

         强调: es插件目录中一个目录就是一个插件

         

        

 

在Head中测试如下命令:

POST _analyze
{
  "analyzer": "ik_max_word",
  "text": "我是中国人"
}

 

 5.Kibana

        简介:Kibana是es的可视化工具

        下载地址:Install Kibana | Kibana Guide [7.15] | Elastic

        注意:版本需要和es保持一致

        启动:双击运行bin目录中的kibana.bat即可启动

        测试:打开浏览器:  http://localhost:5601/ 

        在kibana左侧做到Dev Tools,输入请求命令

POST _analyze
{
  "analyzer": "ik_max_word",
  "text": "我是中国人"
}

         测试结果如下:

 6. es的增删改查操作

        Elasticsearch提供了Rest风格的API,即Http请求接口,而且也提供了各种语言的客户端API

        文档地址:Quick start | Elasticsearch Guide [7.15] | Elastic

        中文文档:Elasticsearch: 权威指南 | Elastic

        6.1 操作索引库

                基本概念:

                        Elasticsearch也是基于Lucene的全文检索库,本质也是存储数据,很多概念与MySQL类似的。

                        对比关系:

                                

 未完待续.......

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值