谷粒商城 检索分析

需求

接受所有传过来的搜索参数
参数如下

keyword=苹果&catalog3Id=225&skuPrice=_2000&attrs=18_晴雪:幻境&attrs=19_6.1英寸&sort=skuPrice_desc&pageNumber=2

分割参数主要使用split() 函数进行处理

  1. 检索
  2. 排序
  3. 分页
  4. 高亮特定属性
  5. 获取所有结果的属性,分类,品牌,以便attrs检索(聚合)
terms
  • catalogId
  • hasStock
  • attrs.value
  • attrs,id
rang
  • skuPrice
排序
  • sort:{属性} {asc/desc}
分页
  • from to
高亮
  • highlight 添加html标签
聚合
  • brandVO,catalogVO,AttrVO 里面的属性需要以聚合的方式获得

处理思路

  • SearchParam 封装搜索参数用于检索
  • SearchResult 封装搜索结果供前端调用
  • searchRequestBuild() 通过SearchParam构造检索语句用来向elsticsearch检索
SearchRequest searchRequestBuild(SearchParam searchParam)
  • searchResultBuild() 将elasticsearch返回的检索结果封装成 SearchResult
SearchResult searchResultBuild(SearchParam searchParam,SearchResponse searchResponse)
  • search() 使用 searchRequestBuild, searchResultBuild 来检索
SearchResult search(SearchParam searchService)

searchRequestBuild 方法

  1. 使用参数时需要先判空
  2. 属性问题:多属性检索时,每个属性都作为一个检索条件,而不是将每个属性都封装在一个条件中,这样检索结果为空,也就是一个属性不可能有两个id
  3. split:split 第二个参数默认为0,也就是默认会丢弃最后一个分割符后面的空串,所以需要设置第二个参数,防止报数组越界

SearchResult

  1. 从getAggregations拿到聚合时,要将声明为指定的聚合,默认返回一个接口
前端跳转

跳转方法:修改location.href的值,刷新页面。
参数

  • 拼接时判断是否存在,如果存在是替换,不存在时增加
  • 如果有?添加& 没有?则添加?
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值