我试图使用Nest to Elasticsearch索引许多文档。事情很好,那里的文件数量有限,但是当我增加这个数字时 - 从1000到50,000就会引发错误。由于文件数量的原因,我不相信它 - 这可能是糟糕的数据。
我试图防止错误的数据 - 我只是索引具有id的文档。 id是从我的一个字段(upc)生成的。所以我很肯定每个文件都有一个id。我还要确保我的类对象是否有序列化到/来自所有可以为空的属性。
仍然,我没有任何信息可以帮助我解决这个错误。
我得到的错误是..
Unable to perform request: 'POST' on any of the nodes after retrying 0 times
以及抛出错误时的堆栈跟踪:
at Elasticsearch.Net.Connection.Transport.RetryRequest[T](TransportRequestState`1 requestState, Uri baseUri, Int32 retried, Exception e) in c:\Projects\NEST\src\Elasticsearch.Net\Connection\Transport.cs:line 241
at Elasticsearch.Net.Connection.Transport.DoRequest[T](TransportRequestState`1 requestState, Int32 retried) in c:\Projects\NEST\src\Elasticsearch.Net\Connection\Transport.cs:line 215
at Elasticsearch.Net.Connection.Transport.DoRequest[T](String method, String path, Object data, IRequestParameters requestParameters) in c:\Projects\NEST\src\Elasticsearch.Net\Connection\Transport.cs:line 163
at Elasticsearch.Net.ElasticsearchClient.DoRequest[T](String method, String path, Object data, BaseRequestParameters requestParameters) in c:\Projects\NEST\src\Elasticsearch.Net\ElasticsearchClient.cs:line 75
at Elasticsearch.Net.ElasticsearchClient.Bulk[T](Object body, Func`2 requestParameters) in c:\Projects\NEST\src\Elasticsearch.Net\ElasticsearchClient.Generated.cs:line 45
at Nest.RawDispatch.BulkDispatch[T](ElasticsearchPathInfo`1 pathInfo, Object body) in c:\Projects\NEST\src\Nest\RawDispatch.generated.cs:line 34
at Nest.ElasticClient.<Bulk>b__d6(ElasticsearchPathInfo`1 p, BulkDescriptor d) in c:\Projects\NEST\src\Nest\ElasticClient-Bulk.cs:line 20
at Nest.ElasticClient.Dispatch[D,Q,R](D descriptor, Func`3 dispatch, Boolean allow404) in c:\Projects\NEST\src\Nest\ElasticClient.cs:line 86
at Nest.ElasticClient.Dispatch[D,Q,R](Func`2 selector, Func`3 dispatch, Boolean allow404) in c:\Projects\NEST\src\Nest\ElasticClient.cs:line 72
at Nest.ElasticClient.Bulk(Func`2 bulkSelector) in c:\Projects\NEST\src\Nest\ElasticClient-Bulk.cs:line 15
at Nest.ElasticClient.IndexMany[T](IEnumerable`1 objects, String index, String type) in c:\Projects\NEST\src\Nest\ElasticClient-Index.cs:line 44
at ElasticsearchLoad.Program.BuildBulkApi() in c:\Projects\ElasticsearchLoad\ElasticsearchLoad\Program.cs:line 258
任何帮助将不胜感激!
答案 0 :(得分:1)
通过结合使用文档和Elasticsearch配置,您可以将有效的批量大小限制在可以发送到Elasticsearch的范围内。对此没有任何“单一最佳答案”,但是通过一些测试和配置更改,您应该能够获得合适的批量索引性能阈值。这里有一些资源可以帮助你...
对于Elasticsearch的整体大小,我强烈建议阅读 - Sizing Elasticsearch - Scaling up and out
答案 1 :(得分:0)
如果您在多节点群集中运行,请确保所有节点的设置都相同。
我不确定这是否可以帮到你,但我在2节点集群中遇到了类似的问题。我正在添加同义词并仅为主机设置文件。我完全忘了把它复制到第二个节点。在创建依赖于该同义词文件的新索引时,这会导致我上面的错误。
在我添加同义词文件并重新启动第二个节点后,一切都恢复正常。