Elasticsearch 实战篇 | 黑马旅游

一、酒店搜索和分页

需求:实现黑马旅游的酒店搜索功能,完成关键字搜索和分页

1、定义实体类,接收前端的参数

如果当搜索条件为空的时候,就返回全部数据,不为空才按照key来搜索

二、条件过滤

修改实体类,加几个参数,参数就是条件

城市city、品牌brand、星级starName都是精确匹配,而价格price是范围匹配,过滤条件要放到filter里面,这样不会参与算分,提高性能

注意:多个条件之间用AND关系,组合条件用BooleanQuery,参数都要做非空判断

三、附近的酒店

前端带着我的位置来请求我们的接口,我们用这个location去es找,按千米为单位来排序

我们拿对象的时候,要多拿个sort字段,表示目标距离我们多少km,要返回给前端 

四、广告制定

需求:默认情况是按照相关性来排序的,但是我们想给某些酒店打广告,放到前面。让指定的酒店在搜索结果排名中指定。

  1. 给hotelDoc类添加isAD字段,boolean类型,表示是否打广告
  2. 挑选几个喜欢的酒店,给文档数据添加isAD字段,为true
  3. 修改search方法,添加function score功能,给isAD值为true的增加权重

先增加了4个广告

满足过滤条件的就会执行算分函数,增加权重,直接乘10

 

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

卒获有所闻

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

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

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

打赏作者

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

抵扣说明:

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

余额充值