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