分布式搜索——ES查询搜索

本文详细探讨了DSL查询的分类、TF算法、TF-IDF和BM25算法,FunctionScoreQuery与BooleanQuery的使用,以及搜索结果的排序、分页、高亮和RestClient的查询方法。通过黑马旅游案例展示了如何实际应用这些技术进行搜索优化。
摘要由CSDN通过智能技术生成

一、DSL查询语法

1. DSL查询分类和基本语法

2. 全文检索查询

3. 精确查询

4. 地理查询

5. 复合查询(相关性算分)

 

最开始用TF算法,但是每个文档都拥有一个同样的词条的时候,计算这个词条的频率就没太大意义,所以后来又有了TF-IDF算法,计算这个词条在所有文档中的权重,但是随着词条频率越高,TF-IDF的得分也越来越高,受词频影响较大,所以后来又有了BM25算法,这种算法即使词频再高,最后得分也会趋于稳定:

6. FunctionScoreQuery(修改算分)

7. BooleanQuery(组合 子查询)

多条件查询时,可以将不必要的不用参与算分的查询,放入filter中,也可以提升效率:

二、搜索结果处理

1. 排序

2. 分页

3. 高亮

默认情况下,ES搜索字段必须与高亮字段一致,同时默认情况下,ES加的前置标签和后置标签也是em:

三、RestClient查询文档

1. 快速入门

2. match、term、range、bool查询 

3. 排序和分页

4. 高亮显示

构建部分:

结果解析,得到name之后再对取到的source里面的name进行覆盖:

5. 组合查询

四、黑马旅游案例

1. 实现关键字搜索和分页

2. 实现参数过滤

3. 附近的酒店

4. 置顶指定酒店

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值