一、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进行覆盖: