ElasticSearch7.x的基本操作学习(一):概念了解

本文介绍了Elasticsearch的基本概念、安装步骤和核心特性,包括其作为全文搜索引擎的角色,以及与关系型数据库的对比。通过安装Elasticsearch、可视化界面Head和Kibana,演示了如何创建索引、使用可视化工具。同时,讨论了Elasticsearch的倒排索引机制,强调了IK分词器在中文搜索中的重要性。最后,解释了Elasticsearch中的文档、类型和索引的概念,以及分片的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是ElasticSearch

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

简单来说:就是用于做全文搜索,结构化搜索,分析使用;

1.ElasticSearch的安装

 注意:对于java的JDK要求,最低也得1.8

点击进入es官网地址下载

IK分词器下载

Kibana华为云镜像下载

1.1ES的启动在这里插入图片描述

  • 启动成功,出现127.0.0.1/9200
    在这里插入图片描述
  • 访问一下呗~
    在这里插入图片描述

2.安装ES的可视化界面:es-head

点击获取es-head的下载地址

注意:在windows下,安装head插件需要NodeJS的环境;

 在head插件中,输入cmd打开终端窗口,输入npm run start 启动前端项目

在这里插入图片描述

  • 打开页面,发现已经启动好了head插件

在这里插入图片描述

注意:第一次启动head插件的时候可能会出现跨域错误,改如何解决:
打开es->找到config文件夹->打开elasticsearch.yml->配置下图内容即可
在这里插入图片描述

2.1利用head插件创建一个索引
   对于初学:我自己的建议是把es看做一张数据库表就可以了,然后可以在数据库中创建表等一些操作.

在这里插入图片描述

3.kibana的安装

3.1kibana的介绍

Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看存放在Elasticsearch中的数据。Kibana与Elasticsearch的交互方式是各种不同的图表、表格、地图等,直观的展示数据,从而达到高级的数据分析与可视化的目的。
Elasticsearch、Logstash和Kibana这三个技术就是我们常说的ELK技术栈,可以说这三个技术的组合是大数据领域中一个很巧妙的设计。一种很典型的MVC思想,模型持久层,视图层和控制层。Logstash担任控制层的角色,负责搜集和过滤数据。Elasticsearch担任数据持久层的角色,负责储存数据。而我们这章的主题Kibana担任视图层角色,拥有各种维度的查询和分析,并使用图形化的界面展示存放在Elasticsearch中的数据。

作者:叩丁狼教育
链接:https://www.jianshu.com/p/8001ac47c378
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

简单来说:就是用于es的可视化平台,用来搜索,查看交互存储在es中的索引数据.

下载地址:kibana对应的华为云的镜像地址

直接点击启动即可:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

4.ES核心概念

 记住一个观点:ES是面向文档

关系型数据和ES的比较:

关系型数据库ElaticSearch
数据库索引(index)
类型
文档
字段属性名称

elasticsearch(集群)中可以包含多个索引(数据库),每个索引中可以包含多个类型(表),每个类型下又包含多个文档(行),每个文档中又包含多个字段(列)。

物理设计
es把后台的索引分片成多个,每片分片可以在集群的不同的服务器迁移;
就算es只有一台,那么对于它自己而言,它一个就是集群;

文档–>(一条数据)

之前说elasticsearch是面向文档的,那么就意味着索引和搜索数据的最小单位是文档,elasticsearch中,文档有几个重要属性:

自我包含,一篇文档同时包含字段和对应的值,也就是同时包含key:value !
可以是层次型的,一个文档中包含自文档,复杂的逻辑实体就是这么来的! {就是一个json对象 ! fastjson进行自动转换 !}
灵活的结构,文档不依赖预先定义的模式,我们知道关系型数据库中,要提前定义字段才能使用,在elasticsearch中,对于字段是非常灵活的,有时候,我们可以忽略该字段,或者动态的添加一个新的字段。

类型—>(一张表)

类型是文档的逻辑容器,就像关系型数据库一样,表格是行的容器。类型中对于字段的定义称为映射,比如name映射为字符串类型。我们说文档是无模式的,它们不需要拥有映射中所定义的所有字段,比如新增一个字段,那么elasticsearch是怎么做的呢?

elasticsearch会自动的将新字段加入映射,但是这个字段的不确定它是什么类型,elasticsearch就开始猜,如果这个值是18,那么elasticsearch会认为它是整形。但是elasticsearch也可能猜不对,所以最安全的方式就是提前定义好所需要的映射,这点跟关系型数据库殊途同归了,先定义好字段,然后再使用,别整什么幺蛾子。

索引–>(相当于一个数据库,里面可以有很多表)

索引是映射类型的容器, elasticsearch中的索引是一个非常大的文档集合。 索引存储了映射类型的字段和其他设置。然后它们被存储到了各个分片上了。我们来研究下分片是如何工作的。

5.ES的倒排索引

简单说就是 按(文章关键字,对应的文档<0个或多个>)形式建立索引,根据关键字就可直接查询对应的文档(含关键字的),无需查询每一个文档,如下图

在这里插入图片描述比如说我们去查询有python的数据,我们可以不再根据id一个个来查询标签,而是直接找到标签所对应的文章id即可,完全过滤掉无关的数据,提高查询效率。

6.IK分词器(elasticsearch插件)

  可以理解为:中文分词器
6.1 IK分词器有什么用呢?

分词:即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一一个匹配操作,默认的中文分词是将每个字看成一个词(不使用用IK分词器的情况下),比如“我爱中国”会被分为”我”,”爱”,”狂”,”神” ,这显然是不符合要求的,所以我们需要安装中文分词器ik来解决这个问题。

6.2 下载地址:

https://github.com/medcl/elasticsearch-analysis-ik/releases

6.3如何使用

1.下载完毕后,放入es的plugins目录下
在这里插入图片描述2.然后,重启我们的es;
3.测试:
1.ik_smart:最少切分(意思是:尽量组成词语,少做切分)
在这里插入图片描述
2.ik_max_word:最细粒度划分(穷尽词库的可能,尽量组成词语,多做切分,提高查询的可能性)
在这里插入图片描述3.从上面看,感觉分词都比较正常,但是大多数,分词都满足不了我们的想法,如下例

在这里插入图片描述那么,我们需要手动将该词添加到分词器的词典当中

在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨某人的快乐学习日记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值