Elasticsearch 查询结果进行分数排名

业务需求

curd的时候突然插了一个需求进来,需要改造之前的代码支持es查询结果排序。

执行方案

1.使用业务代码实行(简单,但需要进行两次请求)
2.改造ES的DSL进行实行(复杂,需要进行查询相关ES技术文档)

目前查到能够实现目的的Es方案是使用constant_score过滤条件进行查询结果进行分级。

constant_score的用处

当我们不关心检索词频率TF(Term Frequency)对搜索结果排序的影响时,可以使用constant_score将查询语句query或者过滤语句filter包装起来。

检索词频率:检索词在该字段出现的频率。出现频率越高,相关性也越高。字段中出现过5次要比只出现过1次的相关性高。

引用文章

添加新评论

文章状态:已收录~