【问题标题】:How to force segments merge in Elasticsearch 5?如何在 Elasticsearch 5 中强制段合并?
【发布时间】:2017-04-10 14:07:29
【问题描述】:

我正在使用 Elasticsearch 5.2.2,我想在密集的索引操作之后完全合并我的索引段。

我正在使用以下其余 API 来合并所有细分:

http://localhost:9200/my_index/_forcemerge

(我也尝试在 POST 请求中添加 max_num_segments=1。)

ES 回复:

{
  "_shards": {
    "total": 16,
    "successful": 16,
    "failed": 0
  }
}

请注意,my_index 由 16 个分片组成。

但当我询问节点统计信息 (http://localhost:9200/_nodes/stats) 时,它会回复:

segments: {
    count: 64,
    [...]
}

所以看起来所有的分片都被分成了 4 段 (64/16 = 4)。实际上,数据目录上的“ls”确认每个分片有 4 个段:

~# ls /var/lib/elasticsearch/nodes/0/indices/ym_5_99nQrmvTlR_2vicDA/0/index/
_0.cfe      _0.cfs      _0.si       _1.cfe      _1.cfs      _1.si       _2.cfe      _2.cfs      _2.si       _5.cfe      _5.cfs      _5.si       segments_6  write.lock 

并且没有并发合并正在运行 (http://localhost:9200/_nodes/stats):

merges: {
    current: 0,
    [...]
}

并且所有 force_merge 请求都已完成(http://localhost:9200/_nodes/stats):

force_merge: {
    threads: 1,
    queue: 0,
    active: 0,
    rejected: 0,
    largest: 1,
    completed: 3
}

我对 ES 2.2 没有这个问题。

谁知道如何完全合并这些片段?

谢谢大家!

【问题讨论】:

  • 你能找到这个问题的答案吗?
  • 我遇到了同样的问题,并通过在运行合并时暂停对集群的索引来解决这个问题。这样做时,我能够在 ES 6.x 上将段大小降低到 max_num_segments。

标签: elasticsearch optimization elasticsearch-5


【解决方案1】:

我不确定您的问题是否已解决。只是在这里发帖让其他人知道。

这应该是一个错误。您可以看到以下问题。使用空的 json 主体可以使其工作。 https://github.com/TravisTX/elasticsearch-head-chrome/issues/16

【讨论】:

    猜你喜欢
    • 2016-10-19
    • 1970-01-01
    • 2022-01-04
    • 2015-02-26
    • 2017-04-12
    • 2023-03-26
    • 1970-01-01
    • 2021-04-25
    • 1970-01-01
    相关资源
    最近更新 更多