ElasticSearch 电商搜索实现

Elasticsearch实践:电商搜索功能实现

      最近打算自己做一个类似手机电商app的搜索功能,于是自然想到了elasticsearch,首先参考到的美团的app,根据类目和喜好,加上关键词,根据距离远近筛选出满足用户要求的店铺,以及店铺下的满足要求的商品(3个),如下图类似的效果

      由于刚刚入坑,elasticsearch,所以看了些文档,elastcisearch,有nested和parent/child这两种格式的文档结构满足功能需求,nested是将店铺和商品信息看做一个文档,当店铺里的商品很多或者,要更改商品信息时需要更新整个文档。根据子集进行过滤后无法支持只取子集的前3个所以暂不考虑,parent/child这种格式的现在6.X现在统一叫join,反正性能好像不太好。elasticsearch属于NoSql的分支,数据尽量扁平化。根据网络上的做法是做宽表冗余。

     我采用的就是这种做法。将店铺的部分信息冗余到商品里去。(店铺名称,图标,月销量和坐标)。下图是我的商品的mapping

  

看下product的文档数据要求就是根据店铺做折叠,对折叠功能有兴趣的同学可以看下链接:https://elasticsearch.cn/article/132

现在要搜索关键字为数码,且goodTypeId为2的所有商品,按店铺显示

GET product/_search
{
    "from": 0,
    "size": 10,
    "query": {
        "bool": {
            "must": [{
                "match": {
                    "goodsLabels": {
                        "query": "数码",
                        "operator": "OR",
                        "prefix_length": 0,
                        "max_expansions": 50,
                        "fuzzy_transpositions": true,
                        "lenient": false,
                        "zero_terms_query": "NONE",
                        "auto_generate_synonyms

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 测试通过输入查询条件并将数据显示到页面
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值