搜索引擎优化书籍(Elasticsearch的Elasticsearch查询数据的因素有哪些?将分析)

优采云 发布时间: 2022-01-22 04:08

  搜索引擎优化书籍(Elasticsearch的Elasticsearch查询数据的因素有哪些?将分析)

  Elasticsearch 是一个非常灵活且功能丰富的搜索引擎,它提供了许多不同的方式来查询数据。在实际业务场景中,经常会出现远低于预期查询速度的慢查询。如果业务对查询延迟比较敏感,那么 Elasticsearch 查询延迟的抖动就是一个比较麻烦的问题。

  Elasticsearch 作为一个分布式系统,可能有多种因素会影响查询性能。本文将分析导致查询慢的因素,并提供一些优化搜索速度的建议。

  一、文件系统缓存越大越好

  为了加快搜索速度,Elasticsearch 严重依赖文件系统缓存。通常,至少需要一半的可用内存作为文件系统缓存,以便 Elasticsearch 可以将索引的热点区域保留在物理内存中。

  文件系统缓存可以理解为:操作系统的可用内存(总内存-分配的内存)。

  

  如果给文件系统缓存更多的内存,并且内存可以尽可能的容纳所有的IDX Segment File索引数据文件,那么内存基本上是在搜索的时候使用的,性能会非常高。所以总的来说,性能要比磁盘高一个数量级,基本以毫秒为单位,从几毫秒到几百毫秒不等。

  二、使用更快的硬件

  搜索通常是 I/O 密集型的。除了上面分配更多的文件系统缓存之外,您还可以考虑购买更快的硬盘。

  如果搜索是 CPU 密集型的,还可以考虑购买更快的 CPU。

  

  三、文档建模

  文档需要具有适当的类型,以便查询操作消耗更少的资源。

  特别要避免连接操作,包括:

  因此,通过宽表冗余存储(Data denormalization)的设计,不需要join操作,可以显着提高查询速度。

  适用场景:一对多或多对多关联。

  优点:速度快。因为每个文档都收录所有必需的信息,所以当需要在查询中匹配该信息时,不需要昂贵的关联操作。

  缺点:索引更新或删除数据,应用程序必须处理宽表的冗余数据。

  由于冗余存储,某些搜索和聚合操作可能无法按预期工作。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线