分享好友 最新动态首页 最新动态分类 切换频道
es 模糊查询API es 模糊查询 性能优化
2024-12-26 12:33


es 模糊查询API es 模糊查询 性能优化

  Elasticsearch严重依赖于文件系统缓存,以便快速进行搜索。 通常应该确保至少有一半的可用内存进入文件系统缓存,以便Elasticsearch可以将索引的热区域保留在物理内存中。

  如果搜索受I / O限制,应该调查为文件系统缓存提供更多内存(参见上文)或购买更快的驱动器。 特别是已知SSD驱动器比旋转磁盘性能更好。 始终使用本地存储,应避免使用NFS或SMB等远程文件系统。 还要注意虚拟化存储,例如亚马逊的Elastic Block Storage。 虚拟化存储与Elasticsearch配合得非常好,因为设置起来非常快速和简单,所以它很有吸引力,但与专用本地存储相比,它在本质上也很慢。 如果在EBS上放置索引,请务必使用预配置IOPS,否则可能会快速限制操作。
  如果搜索受CPU限制,您应该调查购买更快的CPU。

  应对文档进行建模,以使搜索时间操作尽可能便宜。
  特别是,应该避免连接。 嵌套(nested )可以使查询慢几倍,父-子(parent-child)关系的数据可以使查询慢几百倍。 因此,如果可以通过非规范化文档来回答相同的问题,则可以预期显着的加速。(强烈建议,因为我也是自己自定义模板的,后面我会出一篇专门说如何设计数据模板的文章)

  query_string或multi_match查询所针对的字段越多,ES就越慢。 提高多个字段的搜索速度的常用技术是在索引时将其值复制到单个字段中,然后在搜索时使用此字段。 这可以使用映射的copy-to指令自动执行,而无需更改文档源。
  下面是一个包含电影的索引示例,这些电影通过将两个值都索引到name_and_plot字段中来优化搜索电影名称和图表的查询。

  应该利用查询中的模式来优化数据索引的方式。
  例如,如果所有文档都有一个price字段,并且大多数查询在固定的范围列表上运行范围聚合,则可以通过将范围预先索引到索引中并使用术语聚合来加快此聚合。 例:创建一条文档:

搜索请求如下

然后可以通过索引时间范围的price_range字段来压缩文档,该字段应该映射为keyword:

然后搜索请求可以聚合此新字段,而不是在price字段上运行范围聚合。

  某些数据虽然是数字并不意味着会映射为数字字段。通常,存储标识符的字段(例如ISBN或从另一个数据库中识别记录的任何数字)可以将其映射为keyword而不是integerlong

  一般来说,应该避免使用脚本。但如果是必要的,应该使用painless或者expressions脚本引擎。

  使用now的日期字段上的查询通常不能缓存,因为被匹配的范围一直在变化。但是,从用户体验的角度来看,切换到一个完整的日期通常是可以接受的,并且可以更好地利用查询缓存。
  例如下面的查询:

可以用以下查询替换:

  在这种情况下,我们舍入到分钟,因此如果当前时间是16:31:29,范围查询将匹配my_date字段的值在15:31:0016:31:59之间的所有内容。 如果多个用户在同一分钟内运行包含此范围的查询,则查询缓存可以帮助加快速度。 用于舍入的间隔越长,查询缓存可以提供的帮助越多,但要注意过于激进的舍入也可能会损害用户体验。
注意:为了能够利用查询缓存,可能很容易将范围分割成一个大的可缓存部分和一个小的不可缓存部分,如下所示:

但是,这种做法可能会使查询在某些情况下运行得更慢,因为bool查询引入的开销可能会破坏更好地利用查询缓存的节省。

  只读索引将从合并到单个段中获益。基于时间的索引通常是这样的:只有当前时间框架的索引获得新文档,而旧索引是只读的。
注意:不要强制将合并索引写入到后台合并过程中。

  全局序数是一个数据结构,用于在keyword 字段上运行术语聚合。它们被延迟地加载到内存中,因为ES不知道哪些字段将用于术语聚合,哪些字段不会。可以通过mapping映射(如下)在刷新时告诉Elasticsearch加载全局序数:

  如果重新启动运行Elasticsearch的计算机,则文件系统缓存将为空,因此在操作系统将索引的热区域加载到内存之前需要一些时间,以便搜索操作很快。 根据使用index.store.preload设置的文件扩展名,可以显式地告诉操作系统应该将哪些文件加载到内存中。预加载设置。注意:如果文件系统缓存不够大,无法保存所有数据,那么在太多索引或太多文件上急切地将数据加载到文件系统缓存中会使搜索速度变慢。谨慎使用。

  如果文档中有数字标识符,则很容易将它们映射为数字,这与它们的json类型一致.但是,Elasticsearch索引数字的方式会优化范围查询,而keyword字段在术语查询时更好。 由于标识符从未在范围查询中使用,因此应将它们映射为关键字。

  索引排序可以很有用,以便以稍微慢点的索引为代价使连接更快。在索引分类文档中阅读更多信息。

  有多个缓存可以帮助搜索性能,例如文件系统缓存、请求缓存或查询缓存。然而,所有这些缓存都是在节点级别上维护的,这意味着,如果您在一行中运行相同的请求两次,拥有一个或多个副本,并使用默认的路由算法round robin,那么这两个请求将进入不同的碎片副本,从而节点级缓存发挥不起作用。
  由于搜索应用程序的用户通常会一个接一个地运行类似的请求,例如为了分析较窄索引子集,使用标识当前用户或会话的偏好值可以帮助优化高速缓存的使用。

  除了提高弹性外,副本还可以帮助提高吞吐量。例如,如果您有单个分片索引和三个节点,则需要将副本数设置为2,以便总共拥有3个分片副本,以便使用所有节点。
  现在假设你有一个2分片索引和两个节点。在一种情况下,副本的数量是0,这意味着每个节点拥有一个分片。在第二种情况下,副本的数量是1,这意味着每个节点具有两个分片。哪种设置在搜索性能方面表现最佳?通常,每个节点总共具有较少分片的设置将表现得更好。原因是它为每个分片提供了更大的可用文件系统缓存份额,而文件系统缓存可能是Elasticsearch的第一性能因子。同时,请注意,在单节点发生故障的情况下,没有副本的设置会出现故障,因此在吞吐量和可用性之间需要进行权衡。
  那么正确的副本数据是多少?如果您的群集具有num_nodes节点,则总共有num_primaries主分片,如果您希望最多能够同时处理max_failures节点故障,那么适合您的副本数量为max(max_failures,ceil(num_nodes /) num_primaries) - 1)。

最新文章
2024淘宝天猫双十一开始时间介绍
2024淘宝天猫双十一什么时候开始?2024年不同于往年的11月11日正式启动,今年的双十一活动提前到了10月14日,并带来了更为丰富的优惠和玩法,有很多的用户不知道淘宝天猫双十一什么时候开始,针对这个问题,小编给大家带来了2024淘宝天猫双
2023年搭建微信公众号积分商城
1)拥有庞大的微信用户群体。2)用户操作简便,小程序界面友好,支付快捷方便。3)可以为商家带来长期稳定的流量和销售,并降低营销成本。如果商家没有自己的技术团队进行开发,推荐选择专业的小程序商城系统开发公司进行合作。专业团队不
2006年世界顶级杀毒软件排名
2006年世界顶级杀毒软件排名2006年世界顶级杀毒软件排名金奖: BitDefender银奖: Kaspersky铜奖: F-Secure Anti-Virus第四名: PC-cillin第五名: ESET Nod32第六名: McAfee VirusScan第七名: Norton AntiVirus第八名: AVG Anti-Virus
Google发布AI编程助手Jules,推动编程任务自动化取得新进展
近日,Google公司正式推出了其全新的人工智能编程助手Jules,这一重磅消息迅速引发了业界的广泛关注。Jules的推出,标志着编程任务自动化迈出了重要一步,成为未来软件开发的潜在游戏规则改变者。Jules建立在Google最新发布的大语言模型Gem
ai怎么设计扁平风格的咖啡场景插图?
ai中想要设计一幅温暖的咖啡场景插画,该怎么设计呢?主要使用了形状工具来完成,下面我们就来看看详细的教程。一、工作如何创建新文档按control - n生成新文档。将单位设置为像素,并为文档的宽度和高度输入800x600。然后在高级选项
AI绘制美女写真:探索最强生成神器,轻松打造你的超逼真肖像!
总的来说,在这次对比中,我们可以清晰地看到【搜狐简单AI】的优势。功能全面,却保持了简单易用的特性,特别适合新手用户。它的免费使用以及便捷的操作方式,让绝大多数人都能轻松体验到AI生成美女写真的乐趣。如果你也对这个技术感到好奇
2024十大新出的回合制手游推荐,最新回合制手游排行榜前十名
一、《龙族:卡塞尔之门》推荐指数:❤❤❤❤游戏类型:奇幻回合制手游推荐指数:❤❤❤❤❤游戏类型:科幻回合制手游推荐指数:❤❤❤❤游戏类型:魔幻回合制手游推荐指数:❤❤❤❤游戏类型:策略回合制卡牌手游推荐指数:❤❤❤❤游戏类
k8s+jenkins自动化部署
A :master (192.168.0.115) 2核4g 用于k8s的主节点 B: node1 (192.168.0.126) 2核8g C: node2 (192.168.0.128) 2核8g nfs随便找个节点去安装,这里我采用node2这台机器 D: data (192.168.0.129) 环境服
36家阀门企业调研,影响阀门企业研发设计效率的因素和改进
近期,智橙发放了《制造企业研发现状调研问卷》,有36家阀门企业参与了填写,其中有31家为阀门规上企业。图纸管理不到位导致研发低效可以看出,大部分阀门企业仍然在使用传统的文件夹/Excel/纸质表格进行管理。一个阀门从研发到生产,光是B
3月考试
PMP项目管理模拟题每日一练(17):第1题(单选题):在一项智能语音机器人的研发项目中,产品经理发现在初始规划会议上要求添加的一项观感需求并没有带来收益的增加。产品经理判定该项观感需求属于非功能性需求且不具备价值,应该在产品待
相关文章
推荐文章
发表评论
0评