- 2
- 0
- 约5.7千字
- 约 4页
- 2026-04-29 发布于四川
- 举报
ES在返回满足条件的数据时,会根据搜索条件的匹配度来排序,匹配度最高的数据排在最前面。这个匹配度实际上就是
ES返回结果中的score字段的值。
//获取数据的匹配度分数,值越大表示与搜索关键字的匹配度越高
floatscore=hit.getScore();
//获取最终的结果数据
System.out.println(name+‑‑‑++‑‑‑+分数);
此时,我们搜索{name}=的数据
searchSourceBuilder.query(QueryBuilders.matchQuery(name,));
结果如下:
数据总数:2
fontcol或=red刘/font德fontcolor=red华/font‑‑‑60‑‑‑2.591636
字体颜色=red刘/字体‑‑‑20‑‑‑1.0036464
可以看到第一条数据的score分值为
2.59,第二条数据的score分值为1.00。
score分值具体是如何计算出来的呢?可以通过开启评分依据进行查看详细信息:
首先开启评分依据:
//评分依据,true:开启,false:关闭
searchSourceBuilder.exin(true);
获取评分依据信息:
//获取Score的评分依据
解释说明=hit.getExn
原创力文档

文档评论(0)