一篇文章快速学会Elasticsearch在实战中的使用(附高清脑图)

本文详细介绍了Elasticsearch在实际项目中的应用,包括为何选择Elasticsearch,其基本概念,以及如何使用Elasticsearch进行数据导入、搜索、过滤和同步。通过实例演示了Spring Boot集成Elasticsearch的步骤,强调了Kibana和IK分词器的作用。此外,还探讨了数据同步策略,利用RabbitMQ实现Elasticsearch与数据库的实时同步。
摘要由CSDN通过智能技术生成

目录

引言

一、为什么要使用Elasticsearch

二、什么是Elasticsearch

三、Elasticsearch相关

(一)Kibana

(二)IK分词器

四、Elasticsearch的使用

(一)将数据导入Elasticsearch的索引库

Ⅰ、创建搜索微服务

Ⅱ、索引库数据格式分析

Ⅲ、商品微服务提供接口

Ⅳ、导入数据

(二)实现基本的搜索

Ⅰ、页面发送搜索请求

Ⅱ、Controller

Ⅲ、Service

(三)搜索过滤

Ⅰ、过滤功能分析

Ⅱ、生成分类和品牌的过滤

Ⅲ、生成规格参数过滤

Ⅳ、过滤条件的筛选

(四)Elasticsearch索引库与数据库的数据同步

五、高清脑图


 

 

引言

最近在回顾整理,把之前写的项目中的搜索模块的相关内容回顾了一下,做了个关于 Elasticsearch在项目中使用 的脑图,分享出来给大家有需要的人。我顺便再用文章写一遍加深一下印象,然后加一些脑图上不好写的。(都是些基础的使用,适合需要学习使用的初学者,大佬还请无视~)

 

一、为什么要使用Elasticsearch

作为一个商城,搜索功能至关重要。用户一般访问一个商城网站,基本上都是已经有了某样商品的购买需求,进入商城网站后就会直接搜索该类商品。这个时候,搜索速度和搜索结果的准确性就显得非常重要了。不论是 搜索速度慢,还是搜索结果不准确,都是会严重影响用户体验,造成用户流失。

传统的搜索是直接访问数据库来搜索,一旦数据量和访问量上升了,对数据库的压力非常大,极有可能造成数据库服务宕机。就算服务器能抗住访问量,搜索速度也会很慢。你可能会说,给数据库建个索引,确实,这样是会快很多,但是相比Elasticsearch来说,还是比较慢了。并且注意一点,加了索引之后,搜索效果就不好了,前置模糊查询时,会使索引失效,然后变成全表扫描,大数据量的时候,来个全表扫描? 太恐怖了!!!

所以,这个时候就该 Elasticsearch上场了~~~

 

二、什么是Elasticsearch

官网说明:Elasticsearch 是一个分布式的RESTful风格的搜索和数据分析引擎,能够解决不断涌现的各种用例。作为Elastic Stack 的核心,它集中存储了您的数据,帮助您发现意料之中以及意料之外的情况。👉官网

 简单来说Elasticsearch是一个搜索引擎,并且可以对数据进行分析。

Elasticsearch的一些特点:

  1. 分布式,无需人工搭建集群,并尽力隐藏分布式系统的复杂性。
  2. RESTful,API遵循REST原则,容易上手。
  3. 对海量数据进行近实时的处理

 

 

 

三、Elasticsearch相关

(一)Kibana

Kibana是一个基于Node.js的Elasticsearch索引库数据统计工具,可以利用Elasticsearch的聚合功能,生成各种图表,如柱形图,线状图,饼图等。并且Kibana还提供了操作Elasticsearch索引数据的控制台,还API提示,不论是学习Elasticsearch的时候,还是使用Elasticsearch的时候,都很方便,用处也很大。

(二)IK分词器

项目中使用的一个中文分词器,想深入了解的可以去ik的社区看看:ik分词器社区

 

(这两个以及Elasticsearch的基础概念和语法 这里就不详述了,本文重点不在这。)

 

 

 

四、Elasticsearch的使用

 

(一)将数据导入Elasticsearch的索引库

 

Ⅰ、创建搜索微服务

我用Springboot搭的,没什么好说的,注意配置文件配置一下节点和默认名称。

spring:
  application:
    name: search-service
  data:
    elasticsearch:
      cluster-name: elasticsearch #默认其实就是elasticsearch,但最好还是配置一下
      cluster-nodes: xxx.xxx.xxx.xxx:9301 #节点地址和端口

(我没用集群࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值