ElasticSearch查询实战之电商商城商品搜索

本文通过仿照某东商品搜索,详细介绍了如何利用ElasticSearch进行高效的分词搜索。涉及内容包括环境配置、功能实现,如Mysql数据导入ES、分页查询、分词搜索、权重排序等,并提供了部分代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.简介

Elasticsearch是一个基于Lucene的搜索服务器。提供了一个分布式多用户能力的全文搜索引擎,在前面的文章中讲解了单机、集群搭建、DSL语句、分词器、以及整合SpringBoot的Demo。

相关Elasticsearch专题篇

  1. ElasticSearch基本概念(索引,分片,节点,倒排索引…)
  2. ElasticSearch7.x单机版安装
  3. ElasticSearch7.x高可用集群版搭建
  4. Elasticsearch 7x 配置文件详解
  5. Elasticsearch客户端工具之kibana
  6. Elasticsearch客户端工具之ES-Head
  7. ElasticSearch7.x安全性之访问密码设置
  8. Elasticsearch7.x DSL语法之索引管理
  9. Elasticsearch7.x DSL语法之文档管理
  10. Elasticsearch7.x DSL语法之条件查询
  11. Elasticsearch7.x DSL语法之分页查询
  12. Elasticsearch7.x DSL语法之聚合查询
  13. Elasticsearch7.x DSL语法实践手册
  14. Elasticsearch7.x SQL语法查询支持
  15. Elasticsear分词器(内置分词器、集成中文分词器)
  16. SpringBoot+spring-boot-starter-data-elasticsearch整合Elasticsearch
  17. SpringBoot+官方Java High Level REST Client整合Elasticsearch

本文主要以仿某东商品搜索,实例讲解电商系统是如何使用ES更高效的分词搜索

直接上图
在这里插入图片描述

注:源码以及源码说明在下一篇文章
ElasticSearch商城商品搜索实战
包含源码工程,以及实现商品搜索功能的全介绍。

2.前期准备

  • 安装ElasticSearch、Kibana、ik分词器,注意这三个版本需保持一致。
  • 启动ElasticSearch,端口 9200,9300

3.运行环境

4.实现的功能点

  • Mysql数据导入 > ES (尽可能模拟实际场景) ;
  • ES分页查询(最大限制100页) ;
  • ES分词搜索、权重排序 ;
    • 标题关键字匹配、商品名前缀匹配 ;
    • 品牌分类关键字匹配 ;
    • 标题分词匹配 ;
  • ES查询关键字高亮显示(搜索词高亮显示) ;
  • 商品分类、品牌搜索(支持根据关键字匹配分类与品牌) ;
  • 商品动态规格搜索(随着条件变化而变化) ;

注:页面使用的是thymeleaf模板渲染的html,为了Demo项目尽可能简化,主讲ES搜索。

5.效果图

5.1查询条件区域

在这里插入图片描述

5.2商品搜索

在这里插入图片描述

5.3动态效果图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注:效果图过大做了压缩,不是很清晰。

6.源码工程介绍

  • common 包,存放了一些公共常量,工具类等
  • controller 接口
  • dao mapper与实体类
  • model 转换对象
  • repository 使用data-elasticsearch与ES对应
  • service 接口与实现
  • templates 基于templates实现的页面。这里没有用前后分离。
  • static 页面所需的一些静态依赖文件。

6.1代码一角

基本上每行都带有注释,每个方法做了封装,每一个方法尽量只做一件事。
在这里插入图片描述
关注程序员小强公众号更多编程趣事,知识心得与您分享
👏关注“程序员小强”发送关键字“elasticSearch”到公众号获取相关篇

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员小强

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值