我正在使用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我没有这个问题。
谁知道如何完全合并这些细分?
谢谢你们!
我不确定你的问题是否解决了。只是发布在这里让其他人知道。
这应该是一个bug。你可以看到以下问题。使用空的json体可以使它工作。 https://github.com/TravisTX/elasticsearch-head-chrome/issues/16