当过滤后的记录数很高时,Elasticsearch上的排序速度很慢

时间:2018-12-13 17:25:24

标签: sorting elasticsearch spring-data-elasticsearch

  • 业务需求:在我们的应用中,我们需要允许排序 (上升和下降)以及搜索的几个字段。 我们正在使用分页显示仅一页的数据,页面大小为
  • 字段:所有启用了排序的字段均为日期类型。 日期存储的时间很长。
  • 问题:当数字为0时,Elasticsearch快速返回结果 过滤的记录数量很少(例如20个),但如果 过滤的记录很高(例如2K),搜索时间增加到 1秒。随着负载的增加,性能会进一步下降。

    PFB索引的规格。

  • 分片大小:5

  • 副本数:0
  • 刷新间隔:1秒
  • 索引文件总数:20K
  • 索引大小:10MB
  • JVM堆大小:2GB

当前,我们每天在非工作时间清理索引并批量索引该数据。

我了解了有关索引排序here的信息,但是我需要使用Java API或Spring Data Elasticsearch来实现相同的目的,但是我没有找到任何相关的文档。同样,一旦创建索引,就无法更新“ sort.field”,并且由于它需要字段名称,因此索引需要具有适当的映射。

有没有一种方法可以使对几个字段的排序更快。另外,由于记录的数量/大小非常少,有没有办法使Elasticsearch将所有记录保留在内存中以提高搜索/排序的速度。

0 个答案:

没有答案