如何在Elasticsearch 5中强制分段合并?

问题描述 投票:2回答:1

我正在使用Elasticsearch 5.2.2,我希望在密集的索引操作之后完全合并索引的各个部分。

我正在使用以下rest 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我没有这个问题。

谁知道如何完全合并这些细分?

谢谢你们!

elasticsearch optimization elasticsearch-5
1个回答
1
投票

我不确定你的问题是否解决了。只是发布在这里让其他人知道。

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

© www.soinside.com 2019 - 2024. All rights reserved.