【主流技术】ElasticSearch 在 Spring 项目中的实践

🚀 优质资源分享 🚀

学习路线指引(点击解锁) 知识定位 人群定位
🧡 Python实战微信订餐小程序 🧡 进阶级 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
💛Python量化交易实战💛 入门级 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统

前言

ElasticSearch简称es,是一个开源的高扩展的分布式全文检索引擎。

它可以近乎实时的存储、检索数据,其扩展性很好,ElasticSearch是企业级应用中较为常见的技术。

下面和大家分享 ElasticSearch 集成在Spring Boot 项目的一些学习心得。

一、ElasticSearch概述

1.1基本认识

ElasticSearch 是基于 Lucene 实现的开源、分布式、RESTful接口的全文搜索引擎。

Elasticsearch 还是一个分布式文档数据库,其中每个字段均是被索引的数据且可被搜索,它能够扩展至数以百计的服务器存储以及处理PB级的数据。

Elasticsearch 可以通过简单的 RESTful 风格 API 来隐藏 Lucene 的复杂性,让搜索变得更加简单。

1.2核心概念

Elasticsearch 的核心概念是 Elasticsearch 搜索的过程,在搜索的过程中,Elasticsearch 的存储过程、数据结构都会有所涉及。

  • 对比关系型数据库

表1

关系型数据库 Elasticsearch
数据库(DataBase) 索引(indices)
表(table) types(已弃用)
行(rows) documents
字段(columns) fields

注:

  1. Elasticsearch (集群)中可以包含多个indices(对应库),每个索引中可以包含多个types(对应表),每个types下面又包含多个documents(对应行记录),每个documents中又含有多个fields(对应字段)。
  2. Elasticsearch 中一切数据的格式都是 JSON。
  • documents
  • fields
  • types(弃用)
  • indices

Elasticsearch 中的索引是一个非常大的文档集合,存储了映射类型的字段和其它设置,被存储在各个分片上。

1.3倒排索引

Elasticsearch 使用一种名为倒排索引的结构进行搜索,一个索引由文档中所有不重复的列表构成,对于每一个词,都有一个包含它的文档列表。

传统数据库的搜索结构一般以id为主,可以一一对应数据库中的所有内容,即key-value的形式。

而倒排索引则与之相反,以内容为主,将所有不重复的内容记录按照匹配的程度(阈值)进行展示,即value-key的形式。

以下举两个例子来进行说明。

  • 例一:

在关系型数据库中,数据是按照id的顺序进行约定的,记录的id具有唯一性,方便人们使用id去确定内容,如表2所示:

表2

id label
1 java
2 java
3 java,python
4 python
  • 例二:

在 ElasticSearch 中使用倒排索引:数据是按照不重复的内容进行约定的,不重复的内容具有唯一性,这样可以快速地找出符合内容的记录,再根据匹配的阈值去进行展示,如表3所示:

label id
java 1,2,3
python 4,3
1.4了解ELK

ELK 是 ElasticSearch、Logstash、Kibana这三大开源框架首字母大写简称。

其中 Logstash 是中央数据流引擎,用于从不同目标(文件/数据存储/MQ)中收集不同的数据格式,经过过滤后支持输送到不同的目的地(文件/MQ/Redis/elasticsearch/kafka等)。

而 Kibana 可以将 ElasticSearch 的数据通过友好的可视化界面展示出来,且提供实时分析的功能。

ELK一般来说是一个日志分析架构技术栈的总称,但实际上 ELK 不仅仅适用于日志分析,它还可以支持任何其它数据分析和收集的场景,日志的分析和收集只是更具有代表性,并非 ELK 的唯一用途。


二、ElasticSearch(插件)安装

2.1安装声明
  • 适用于JDK1.8及以上版本
  • ElasticSearch客户端
  • 界面工具
  • ElasticSearch版本与Maven依赖版本对应
2.2 ElasticSearch下载

官网地址:https://www.elastic.co

下载地址(7.6.1版本):https://www.elastic.co/downloads/past-releases/elasticsearch-7-6-1,推荐迅雷下载(速度较快)。

2.3安装ElasticSearch

将下载好的压缩包进行安装即可,解压后如下图所示:

解压安装

  • 安装目录
    • bin 启动文件

    • config 配置文件

      • log4j2:日志配置文件
      • jvm.options:Java 虚拟机相关配置
      • elasticsearch.yml:elasticsearch配置文件,默认 9200 端口,解决跨域问题。
    • lib 相关jar包

    • modules 功能模块

    • plugins 插件(如IK分词器)

2.4启动ElasticSearch

打开bin文件夹下的elasticsearch.bat文件,双击启动后访问默认地址:localhost:9200,即可得到以下json格式的数据:

{
  "name" : "ZHUZQC",
  "cluster\_name" : "elasticsearch",
  "cluster\_uuid" : "AMdLpCANStmY8kvou9-OtQ",
  "version" : {
    "number" : "7.6.1",
    "build\_flavor" : "default",
    "build\_type" : "zip",
    "build\_hash" : "aa751e09be0a5072e8570670309b1f12348f023b",
    "build\_date" : "2020-02-29T00:15:25.529771Z",
    "build\_snapshot" : false,
    "lucene\_version" : "8.4.0",
    "minimum\_wire\_compatibility\_version" : "6.8.0",
    "minimum\_index\_compatibility\_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

2.5可视化界面-head安装

下载地址:https://github.com/mobz/elasticsearch-head/

安装要求:先检查计算机是否安装node.js、

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值