ElasticSearch入门学习笔记

Posted dxj1016

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ElasticSearch入门学习笔记相关的知识,希望对你有一定的参考价值。

1、前言


狂神视频–ES

1.1、课程安排

在这里插入图片描述

1.2、Doug Cutting

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

1.3、Lucene

在这里插入图片描述

2、ElasticSearch介绍


2.1、概述

在这里插入图片描述
历史
在这里插入图片描述
谁在使用
在这里插入图片描述

2.2、ES和solr的区别

ElasticSearch简介
在这里插入图片描述
Solr简介
在这里插入图片描述
Lucene简介
在这里插入图片描述
ElasticSearch和Solr比较
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3、总结

在这里插入图片描述

3、ElasticSearch安装


3.1、安装下载

在这里插入图片描述
ES官网

下载地址

官网下载极慢,建议翻墙,网盘中下载即可

在这里插入图片描述

3.2、熟悉目录及启动访问

解压之后有如下目录
在这里插入图片描述
目录介绍
在这里插入图片描述
启动,访问9200
在这里插入图片描述

在这里插入图片描述
访问测试
在这里插入图片描述

3.3、安装可视化界面es(head的插件)

  1. head插件下载地址

  2. 进入插件目录,使用命令cnpm install安装
    在这里插入图片描述

  3. 使用命令npm run start启动
    在这里插入图片描述
    在这里插入图片描述

  4. 使用启动后的网址访问,然后连接es测试发现出现跨域问题
    在这里插入图片描述

  5. 解决方法:先关掉es,打开es配置文件elasticsearch.yml添加如下内容,意思是开启跨域解决,允许全部访问
    在这里插入图片描述

  6. 重新启动es服务器,然后再次连接,没有出现跨域问题
    在这里插入图片描述
    把es当成一个数据库,可以创建索引(数据库)、文档(库中的数据)

在这里插入图片描述

3.4、了解KLE

在这里插入图片描述

3.5、安装Kibana

在这里插入图片描述

Kibana官网
Kibana下载地址

  1. 下载后解压的目录

  2. 启动
    在这里插入图片描述

  3. 访问测试
    在这里插入图片描述
    在这里插入图片描述

  4. 开发工具(PostMan、curl、head、谷歌浏览器插件测试)
    在这里插入图片描述
    之后的所有操作都会在这里进行。

  5. 汉化,找到Kibana目录下的config里面的配置文件kibana.yml,添加i18n.locale: "zh-CN"如下
    在这里插入图片描述

  6. 重启kibana

4、ES的核心概念

在这里插入图片描述

4.1、一切都是JSON

在这里插入图片描述

4.2、物理设计

在这里插入图片描述

4.3、逻辑设计

在这里插入图片描述

4.4、文档

在这里插入图片描述

4.5、类型

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

4.6、索引

在这里插入图片描述

4.7、物理设计:节点和分片 如何工作

在这里插入图片描述

在这里插入图片描述

4.8、倒序索引

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

5、IK分词器插件

5.1、概念

在这里插入图片描述

5.2、安装

  1. 下载地址
    在这里插入图片描述
  2. 下载完毕之后,放到我们的elasticsearch插件即可(zai plugins文件夹下新建个ik文件,将解压后的文件都放进ik)
    在这里插入图片描述

在这里插入图片描述
3. 重启观察ES,没有出现闪退可以看到分词器被加载了。
在这里插入图片描述
启动出现闪退可能是你安装的ik错了,或者放的目录不对,还有可能是你的ik版本跟es版本不一致;还有可能plugins目录下存在解析不了的文件,比如压缩包
启动ik出现闪退解决方法详情请看这里
4. 命令elasticsearch-plugin list查看加载进来的插件
在这里插入图片描述
5. 使用kibana进行测试
查看不同的分词器效果
在这里插入图片描述
当输入喜欢狂神说java的时候:
在这里插入图片描述
发现问题:狂神说被拆开了,这种自己需要的词,需要自己加到我们的分词器的字典中

ik分词器增加自己的配置
在这里插入图片描述
比如自己写个kuangshen.dic的分词器字典文件
在这里插入图片描述
6. 重启es,看细节
在这里插入图片描述
再次测试一下狂神说看看效果!如果自定义字典无效,可以看一下是不是字典文件的格式不对,要使用utf-8格式。
在这里插入图片描述
7. 以后的话,我们需要自己胚子,分词就在自己定义的dic文件中进行配置即可。

5.3、Rest风格说明

在这里插入图片描述

6、索引的基本操作

6.1、创建一个索引

(开启es,开启head插件,开启kibana)

PUT /索引名/类型名/文档id

在这里插入图片描述
完成了自动增加了索引,数据也成功的添加了,这就是可以把当成数据库学习的原因。
在这里插入图片描述

6.2、数据类型

在这里插入图片描述

6.3、指定字段的类型

(不创建规则就会使用默认的,就像上面的put那样)
在这里插入图片描述

6.4、获取这个规则,可以通过GET请求获取具体的信息

在这里插入图片描述

6.5、查看默认的信息

在这里插入图片描述
如果自己的文档字段没有指定,那么es就会给我们默认配置字段类型。

6.6、获取索引信息

扩展:通过elasticsearch 索引情况。通过get _cat/可以获取es的当前的很多信息
在这里插入图片描述

6.7、 修改索引

提交还是可以使用PUT即可,然后覆盖
在这里插入图片描述
最新的修改方法:
在这里插入图片描述

6.8、删除索引

在这里插入图片描述

7、文档的基本操作(重点)

7.1、基本操作

  1. 添加数据 PUT
    在这里插入图片描述
    在这里插入图片描述

  2. 获取数据 GET
    在这里插入图片描述

  3. 更新数据 PUT
    在这里插入图片描述

  4. 新的更新操作 POST _update
    在这里插入图片描述

  5. 简单搜索
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

7.2、复杂搜索操作

select(排序,分页,高亮,模糊查询,精准查询)
模糊查询
在这里插入图片描述
在这里插入图片描述
输出结果不想那么多,怎么实现
在这里插入图片描述
我们之后使用Java操作es,所有的方法和对象就是这里面的key

排序

在这里插入图片描述
分页查询
在这里插入图片描述
布尔值查询(多条件查询)
must(and),所有的条件都要符合 where id=1 and name=xxx;
在这里插入图片描述

should(and),所有的条件都要符合 where id=1 or name=xxx;
在这里插入图片描述
must_not(not)
在这里插入图片描述
过滤器filter(gt大于,gte大于等于,lt小于,Ite小于等于)
在这里插入图片描述
在这里插入图片描述
匹配多个条件
在这里插入图片描述
精确查询

term查询是直接通过到排序索引指定的词条进程精确查找的

关于分词:

  • term:直接查询精确的
  • match:会使用分词器解析(先分析文档,然后再通过分析的文档进行查询)

两个类型 text、keyword
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
多个值匹配查询

在这里插入图片描述
高亮查询

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

8、SpringBoot集成ES

  1. 找官方文档

官方文档
在这里插入图片描述

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

  1. 找到原生的依赖
<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-high-level-client</artifactId>
    <version>7.12.1</version>
</dependency>
  1. 找对象
    在这里插入图片描述

  2. 配置项目

  3. 创建项目,导入依赖
    在这里插入图片描述
    创建项目完成后,修改jdk版本为8,修改java编译版本8,javascript版本6。
    问题:一定要保证我们导入的依赖和我们的es版本一致
    在这里插入图片描述

  4. springboot和es集群(创建config类集成es
    在这里插入图片描述

  5. 具体测试API

    1. 创建索引
      在这里插入图片描述
    2. 判断索引是否存在
      在这里插入图片描述
      结果不对,可能是导包导错了。
    3. 删除索引
      在这里插入图片描述
    4. 创建文档
      创建实体类
      在这里插入图片描述
      要使用json所以添加依赖fastjson
      在这里插入图片描述
      现在可以使用hutool的工具类,fastjson经常有问题,因为安全漏洞不停更新
      在这里插入图片描述
      在这里插入图片描述
    5. 判断文档是否存在
      在这里插入图片描述
    6. 获取文档信息
      在这里插入图片描述
    7. 更新文档的信息
      在这里插入图片描述
    8. 删除文档记录
      在这里插入图片描述
    9. 批量插入数据
      在这里插入图片描述
      在这里插入图片描述
    10. 批量修改和删除,是在上面的批量插入代码修改如下代码
      在这里插入图片描述
    11. 搜索
      在这里插入图片描述

在这里插入图片描述

9、实战

9.1、爬虫

  1. 创建项目(修改版本,如果版本本身没有问题就不用改)
    在这里插入图片描述

  2. 关闭缓存
    在这里插入图片描述

  3. 导入老师给的前端页面资源(资源我没找到)
    在这里插入图片描述

  4. 写controller测试一下项目可不可以
    在这里插入图片描述

  5. 爬取数据(获取请求返回的页面信息,筛选出我们想要的数据就可以了)
    在这里插入图片描述
    工具类
    在这里插入图片描述
    在这里插入图片描述
    实体类
    在这里插入图片描述
    修改上面的工具类:
    在这里插入图片描述

在这里插入图片描述
输出结果:
在这里插入图片描述
不用mian方法,用依赖注入:
修改上面这里的代码
在这里插入图片描述
配置类,spring整合es
在这里插入图片描述
service层
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

9.2、搜索高亮

加入高亮:
在这里插入图片描述
解析高亮:
在这里插入图片描述
controller层
在这里插入图片描述

以上是关于ElasticSearch入门学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

Elasticsearch简介以及增删改查入门(学习笔记)

编程不良人--ElasticSearch从入门到精通--- 狗剩学习笔记

ElasticSearch 学习笔记一 简介

AngularJS入门学习笔记一

Elasticsearch搜学习笔记

Elasticsearch搜学习笔记