gpt4 book ai didi

elasticsearch - 优化API以减少分割并消除ES删除的文档不起作用

转载 作者:行者123 更新时间:2023-12-04 03:51:33 24 4
gpt4 key购买 nike

这是我先前的问题Does huge number of deleted doc count affects ES query performance的延续,该问题与我的ES索引中的已删除文档有关。

正如答案中指出的那样,我使用optimize API是因为我使用的是ES 1.X版本,其中force merge API不可用,但是在阅读了关于优化API github链接(之前在ES网站上找不到该链接)后,Say Bannon创始人 flex ,看起来像做同样的工作。

运行优化API后,我得到了索引成功的消息,但是我看不到已删除文档的总数减少,并且担心当我使用segments API检查索引的段时,我看到有超过25个段对于每个分片,每个分片在内存中保存着250-1 gb的数据和近500k的文档,而我看到有些分片中删除的文档很少。

所以我的问题是:

  • 我的索引在多个数据节点上具有多个分片,当我仅使用1个节点URL运行优化API时,它是否仅合并了该节点上的段?
  • 在段API结果中,它像"node": "f2hsqeamadnaskda"一样显示节点ID,而我正在使用KOPF插件并为我的数据节点提供了自定义名称,因此如何将该隐式节点名称与我的可读节点名称相关联以标识语句1是否为正确与否?
  • 由于没有关于optimize API的文档,是否可以在单个镜头中合并所有节点上所有分片上的段?在应用索引之前,我需要使索引为只读吗?
  • 最佳答案

  • 它根据段的状态,大小和其他各种参数合并段,还合并索引的所有分片的段。看起来在您的示例中,您有大量未被优化API选中的段,这使您认为合并适用于特定的节点分片。您可以给其他查询参数max_num_segments = {您想要的段数},然后看它应该将分片的段数减少到给定的数量。
  • 您可以使用带有http://:9200 / _cat / nodes?v&h = id,ip,name的API来找到
  • 节点ID,它以
  • 格式提供输出

    id ip name
    SEax 10.10.10.94 foo
    f2hs 10.10.10.95 bar


    Here ids in the first column are what you are seeing as cryptic in the segment  
    API response, its not completed in above API but initial four character are
    unique and you can find them in segment API result.
  • 是的,可以在一个快照中合并所有节点上所有分片上的段,正如我在第一点提到的那样,只需将{您所需的段数}设为1。此外,建议将索引设为只读避免将已删除的文档分成大段(即大于5 GB),这些段不会被优化API占用,并且这些已删除的文档也永远不会被清除,如https://www.elastic.co/guide/en/elasticsearch/reference/6.8/indices-forcemerge.html中所述。如果您的整体索引大小很小,并且您确定1个段的大小永远不会超过5 GB,那么如果您可以将索引置于只读模式,并且性能会有所下降,则无需这样做,因为段合并是一项代价高昂的操作。但是有时无法停止实时流量(索引编制),因此建议您在群集中负载最小时执行。
  • 关于elasticsearch - 优化API以减少分割并消除ES删除的文档不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60204556/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com