让学习成为一种习惯!--------magic_guo
之前的文章搭建了rabbitMq、es、ik和kibana环境,这次实现es的搜索模块;
在一个电商项目中数据量和并发量很大,如果直接去数据库查询数据,会给数据库造成很大的压力,有可能导致数据库的宕机;
当然解决办法也有很多,其中最典型的两种解决办法就是使用缓存和搜索引擎:
1、数据库 + redis
2、数据库 + 搜索引擎
此模块的业务构架:

es模块的maven依赖:
需要注意的是,es依赖版本要和服务器的es版本要一致;
<dependencies>
<dependency>
<groupId>com.guo</groupId>
<artifactId>shop-common</artifactId>
</dependency>
<dependency>
<groupId>com.guo</groupId>
<artifactId>shop-feign</artifactId>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
</dependency>
<!--1. elasticsearch-->
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>7.2.0</version>
</dependency>
<!--2. elasticsearch的高级API-->
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.2.0</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
模块中要用到两个配置:
rabbitMq的配置:
交换机、队列,然后将队列绑定到交换机上:
package com.guo.config;
import com.guo.constants.ShopConstants;
import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.core.TopicExchange;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class RabbitMQConfig

本文介绍了如何在电商项目中使用Elasticsearch(ES)作为搜索引擎,通过与数据库结合,减轻数据库压力。涉及maven依赖配置,如队列、交换机、ES客户端及索引操作,展示了如何实现实时搜索、高亮和排序功能。
1390

被折叠的 条评论
为什么被折叠?



