elasticsearch,lucene,Curl,elasticsearch,Lucene" /> elasticsearch,lucene,Curl,elasticsearch,Lucene" />

Curl 如何避免elasticsearch批量API中每个文档的索引

Curl 如何避免elasticsearch批量API中每个文档的索引,curl,elasticsearch,lucene,Curl,elasticsearch,Lucene,我使用curl将apache日志行作为文档添加到使用批量API的elasticsearch中。我发表以下声明: {"index": {"_type": "apache", "_id": "123", "_index": "apache-2017-01"}} {"s": 200, "d": "example.se", "@t": "2017-01-01T00:00:00.000Z", "p": "/foo"} {"index": {"_type": "apache", "_id": "124",

我使用curl将apache日志行作为文档添加到使用批量API的elasticsearch中。我发表以下声明:

{"index": {"_type": "apache", "_id": "123", "_index": "apache-2017-01"}}
{"s": 200, "d": "example.se", "@t": "2017-01-01T00:00:00.000Z", "p": "/foo"}
{"index": {"_type": "apache", "_id": "124", "_index": "apache-2017-01"}}
{"s": 200, "d": "example.se", "@t": "2017-01-01T00:00:00.000Z", "p": "/bar"}
... more of the same ...
我的猜测是,对于每个logrow文档行,lucene索引都会更新其索引。但我不需要elasticsearch来做这件事。我完全可以先添加所有logrow文档,然后更新索引


这可能吗?这是一个好身份证吗?它能明显提高性能吗?

你的直觉离事实不远。默认情况下,ElasticSearch:

默认的index.refresh\u间隔为1s,这将强制Elasticsearch 以每秒创建一个新段。增加这个值(也就是说, 30秒)将允许更大的段刷新并减少将来的合并 压力

因此,提高索引吞吐量的方法之一是增加这个
索引。刷新间隔,甚至可能是无限的,然后在完成插入后再打开它。(请注意,插入的文档只有在段关闭后才可用于搜索,即对其的写入已完成。)

然而,这并不是将文档插入ElasticSearch时唯一可能的瓶颈。例如,您可以考虑使用多个线程来批量插入文档,或者在ErrimeStk文档的In节中描述的其他调整。您可以在第节中查找可能要更改的其他索引参数


希望有帮助

你的直觉离真理不远。默认情况下,ElasticSearch:

默认的index.refresh\u间隔为1s,这将强制Elasticsearch 以每秒创建一个新段。增加这个值(也就是说, 30秒)将允许更大的段刷新并减少将来的合并 压力

因此,提高索引吞吐量的方法之一是增加这个
索引。刷新间隔,甚至可能是无限的,然后在完成插入后再打开它。(请注意,插入的文档只有在段关闭后才可用于搜索,即对其的写入已完成。)

然而,这并不是将文档插入ElasticSearch时唯一可能的瓶颈。例如,您可以考虑使用多个线程来批量插入文档,或者在ErrimeStk文档的In节中描述的其他调整。您可以在第节中查找可能要更改的其他索引参数


希望有帮助

批量API的全部要点是以高效的方式执行一系列索引/删除操作。为什么您怀疑Elasticsearch的效率很低?批量API的全部要点是以高效的方式执行一系列索引/删除操作。为什么您怀疑Elasticsearch的效率低下?