ElasticSearch搜索引擎在电商项目中的实践

本文记录了在电商项目中使用ElasticSearch优化搜索功能的过程,包括搜索精度提升、时间与浮点数类型处理、排序翻页策略、字段名大小写问题以及数据同步方案。遇到的问题如must与filter的区分、search after的唯一性要求等,通过不断调试与改进,最终实现了高效稳定的搜索功能。
摘要由CSDN通过智能技术生成

                今年新入职一家电商企业,公司要求我对现有系统的搜索功能进行优化;我因为在之前的公司已经有过ELK的日志系统落地经验,同时对ElasticSearch的搜索引擎实现原理也有研究,帮助公司在物联网领域实现过搜索功能,因此最近一段时间在对现有公司系统架构有一定了解后就着手搭建环境并对现有搜索功能进行改造。经过半个月的开发测试,现在搜索功能已正式上线使用,中间遇到不少问题,特地写这篇文章做个记录。

1、搜索精度问题;

matchPhrase\matchPhrasePrefix 和match的使用;must和filter的区别使用;SortBuilder.ScoreSort的使用,搜索结果按得分高低排列;

matchPhrase 或 matchPhrasePrefix 不会对输入的关键字进行分词,适合精准搜索,符合大多数业务场景,而match 会对关键字进行分词,搜索到的结果不一定符合意图,但可以搜索到的数据较多, 在实际应用中 我将两者结合使用,在精确查找没有结果时再使用match。must 相当于 按位与中的and,filter与之相似,但后者不参与评分。

SortBuilder.ScoreSort可以实现对match搜索的结果按评分高低进行排序,会按_score这个字段的得分排序。

 使用from size翻页时,对from的理解:from是偏移量而非页码;这里笔者又犯了先入为主的毛病,自以为是地认为from就是页数࿰

Elasticsearch 简介 ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算,能够达到实时搜索,稳定,可靠,快速,安装使用方便。elasticSearch 的使用场景 1、在海量数据前提下,对数据进行检索。比如:京东,淘宝等电商项目课程目标: 1. 了解企业级搜索引擎2. 安装elasticsearch 课程目录: 01 课程介绍02 elasticsearch 简介03 elasticsearch 使用场景04 安装elasticsearch 之前先安装jdk05 安装elasticsearch06 测试elasticsearch是否安装成功 07 安装kibana08 elasticsearch 基本认识 以及添加索引和删除索引09 elasticsearch 添加查询数据10 elasticsearch 修改删除数据11 elasticsearch 有条件的查询12 分词子属性fuzzy查询13 elasticsearch 过滤使用14 elasticsearch 排序与分页15 elasticsearch 如何查询指定的字段16 elasticsearch 高亮显示17 elasticsearch 聚合18 elasticsearch mapping 概念19 elasticsearch文词库20 elasticsearch 文词库安装测试21 elasticsearch 文词库的使用案例22 elasticsearch 自定义词库配置23 安装nginx 配置文词库24 测试elasticsearch 自定义文词库25 搭建项目父工程26 搭建项目bean-interface-common27 搭建search 的service web 项目28 测试项目是否能与elasticsearch联通29 创建数据库并搭建首页30 数据上传功能的实现类完成31 数据上传控制器完成32 dubbo 介绍以及安装zookeeper33 将数据从mysql 上传到elasticsearch 34 elasticsearch查询功能分析35 编写业务需求的dsl 语句36 编写输入参数返回结果集的实体类37 实现类编写38 编写实现类dsl 语句39 返回集结果转换40 结果测试41 测试通过输入查询条件并将数据显示到页面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值