弹性搜索排序与得分 - 效率?
elasticsearch sort vs score - efficiency?
我有一个包含几百万条记录的弹性搜索索引。 (基于时间戳的日志记录)
我需要先显示最新记录(即按时间戳降序排列的记录)
基于时间戳的排序描述是否比使用时间戳的函数评分函数更有效(速度、内存效率)?
"script_score" : {
"script" : "doc['timestamp'].value"
}
在时间戳上使用 sort desc 在速度方面会更有效率。在这两种情况下,时间戳的所有值都将加载到内存中以构建称为字段数据的内存结构,因此内存占用将大致相同。但是,在字段上直接排序的情况下,您将避免为每条记录遍历脚本引擎代码。
它也会更精确,因为分数表示为浮点数,并且当您按字段排序时,时间戳将保持很长。
我有一个包含几百万条记录的弹性搜索索引。 (基于时间戳的日志记录)
我需要先显示最新记录(即按时间戳降序排列的记录)
基于时间戳的排序描述是否比使用时间戳的函数评分函数更有效(速度、内存效率)?
"script_score" : {
"script" : "doc['timestamp'].value"
}
在时间戳上使用 sort desc 在速度方面会更有效率。在这两种情况下,时间戳的所有值都将加载到内存中以构建称为字段数据的内存结构,因此内存占用将大致相同。但是,在字段上直接排序的情况下,您将避免为每条记录遍历脚本引擎代码。
它也会更精确,因为分数表示为浮点数,并且当您按字段排序时,时间戳将保持很长。