1. ElasticSearch下载
1.1 下载地址
官网链接:https://www.elastic.co/products/elasticsearch
官网下载太慢,提供一个镜像下载地址:https://repo.huaweicloud.com/elasticsearch/
1.2 下载之后的目录结构
bin:启动文件
config:配置文件
log4j2.properties:日志配置文件
jvm.options:java虚拟机的配置
elasticsearch.yml:es的配置文件
data:索引数据目录
lib:相关类库Jar包
logs:日志目录
modules:功能模块
plugins:插件
1.3 找到bin目录直接运行elasticsearch.bat
1.4 启动完成后浏览器打开http://localhost:9200/
2.ElasticSearch简介
2.1 基本介绍
ElasticSearch是分布式全文检索引擎。简言之有如下特点:
(1)基于简单的RESTful API风格搜索。如查指定文档语法:
GET test/doc/1
(2)近乎实时存储、检索相关数据
2.2 ElasticSearch相关概念
- 集群(cluster): es其实就是分布式数据库,允许多个服务器协同合作,每个服务器上都有多个es实例,这些实例合起来就叫集群。
- 节点(node):每个es实例就叫节点。
- 索引(Index):es管理数据的最高层单位就是Index,类比我们关系型数据库的database。
查询当前节点的所有索引命令如下:
$ curl -X GET 'http://localhost:9200/_cat/indices?v'
- 类型(Type):索引的下一级别管理单位就是类型,一个索引下面的数据可以分类别存储,6.x 以上已不支持多 type。类比我们关系型数据库的table。
- 文档(Document):代表存储的一条数据记录。类比关系型数据库中的一条记录。
- 映射(Mapping):类比关系型数据中的表结构。
- 属性(Field):类比关系型数据库中的列。
ElasticSearch |
关系型数据库 |
备注 |
索引(Index) |
数据库(Database) |
|
类型(Type) |
表(Table) |
6.x以后就取消了。与表有一定区别,不同的Type应该有相似的结构 |
文档(Document) |
记录(Record) |
|
映射(Mapping) |
表结构(Schema) |
|
属性(Field) |
列(Column) |
3.简单使用
kibana是ElasticSearch的常用搭档,kibana能够让用户对ElasticSearch数据进行可视化操作。但如果我们只是需要基本的操作查看或修改下ES数据,我们就不需要安装kibana,比较重量级,我们今天介绍一款谷歌插件elasticsearch-head。
3.1 插件安装
插件下载地址:https://github.com/mobz/elasticsearch-head
谷歌插件安装成功后如图:
3.2 插件链接
点击该插件需要输入用户名和密码,在左上角可选择切换链接地址
3.3 可以使用基本查询页面可以对数据进行简单的查询
查询关键字有三种:分别是:must,should,must_not
must子句:文档必须匹配must查询条件,相当于“=”;
should子句:文档应该匹配should子句查询的一个或多个;
must_not子句:文档不能匹配该查询条件,相当于“!=”;
3.4 可以使用复合查询对数据新增及跟新索引删除索引等等。
4. SpringBoot集成elasticSearch
SpringBoot整合ES有四种方式
1、Rest client
2、Jest client
3、Spring Data
4、Spring Data Repository
注意在集成elasticSearch时一定要注意兼容性问题!
4.1 使用Spring Data Repository集成ES准备工作(感觉这种面向对象的方式比较容易理解)
4.1.1 修改pom文件配置
spring.data.elasticsearch.cluster-name:集群名称
spring.data.elasticsearch.cluster-nodes:集群节点地址列表,多个节点用英文逗号(,)分隔,默认就是localhost:9300
4.1.2 创建ES文档和映射,通过实现ElasticSearchRepository接口操作ES
4.1.3 给实体类加上@Document注解,指定index跟type
至此代码相关编写完成,下面进行测试