我正在使用ES 1.x版本,在索引某些文档时找不到错误。
一些文档没有建立索引,我看到的只是ES日志中的行。
stop throttling indexing: numMergesInFlight=2, maxNumMerges=3
now throttling indexing: numMergesInFlight=4, maxNumMerges=3
我快速浏览了一下Google,并理解了这些错误的严重程度,但想在下面理解:
INFO
日志之外,我没有看到任何错误消息。有没有一种方法可以为索引启用详细日志记录,从而显示出索引编制过程中到底发生了什么?答案 0 :(得分:1)
您在日志中看到的限制消息不是问题。为了进行弹性搜索以防止分段爆炸,后台正在进行节流。请参阅此处的说明:https://www.elastic.co/guide/en/elasticsearch/guide/current/indexing-performance.html#segments-and-merging
限制不会丢弃消息,而只会减慢索引编制速度,这会给索引器和外部队列带来压力。
当索引编制失败时,您应该收到针对索引/大量请求的错误响应。为了确定问题所在,您应该检查ES为索引/批量请求提供的响应。日志可能无法说明完整情况,因为日志取决于日志级别的配置,该级别是ES中的每个模块。
另一种选择是您可以建立索引,但是日志没有您认为正确的时间戳。检查_cat/indices,以查看索引时文档数是否增加。如果文档数增加,则意味着已建立索引的文档已存在,您需要优化搜索范围。
答案 1 :(得分:0)
elasticsearch不会重试,这取决于客户端(尽管我已经有一段时间没有使用1.x了) 例如,logstash正是出于这些原因https://github.com/logstash-plugins/logstash-output-elasticsearch/blob/master/lib/logstash/outputs/elasticsearch.rb#L55
重试它以503和429进行的批处理