声明:本站文章均为作者个人原创,图片均为实际截图。如有需要请收藏网站,禁止转载,谢谢配合!!!

默认情况下,ES的搜索结果是排序的,是按 相关性 倒序排列的———相关性最高的排在最前面。

那么什么是相关性,相关性如何计算?

每个文档都有相关性评分,用一个正浮点数字段 _score 来表示 。 _score 的评分越高,相关性越高。

查询语句会为每个文档生成一个 _score 字段。(评分的计算方式取决于查询类型 不同的查询语句用于不同的目的,这里不详细介绍。)

Elasticsearch 的相似度算法被定义为检索词频率/反向文档频率, TF/IDF ,包括以下内容:

检索词频率

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

反向文档频率

每个检索词在索引中出现的频率?频率越高,相关性越低。检索词出现在多数文档中会比出现在少数文档中的权重更低。常用词如 and 或 the 对相关度贡献很少,因为它们在多数文档中都会出现。

字段长度准则

字段的长度是多少?长度越长,相关性越低。 检索词出现在一个短的 title 要比同样的词出现在一个长的 content 字段权重更大。

排序默认方式是根据算分score来排序
可排序的字段有

  • keyword
  • 数值
  • 地理坐标
  • 日期
GET /indexName/_search
{
    query: {
        match_all: {}
    },
    sort:[
        {"FIELD": "desc"}
    ]
}