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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值