2015-03-03 32 views

cevap

30

Lucene, adresleme için 32 bit tamsayı kullanan dahili bir bayt tamponu kullanır. Tanım gereği bu, belgelerin boyutunu sınırlar. Yani teoride 2GB maksimumdur. ElasticSearch yılında

:

ES GitHub kodunda bir max http request size var olduğunu ve Integer.MAX_VALUE veya 2^31-1 karşı ayarlanır. Yani, temel olarak, 2GB, HTTP üzerinden toplu dizinleme için maksimum belge boyutudur. Ayrıca, buna ek olarak, ES tamamlanana kadar bir HTTP isteğini işlemez.

İyi Uygulamalar:

    Eğer yardımcı olabilir eğer
  • çok büyük bir java yığın kullanmayın : Yalnızca gibi büyük set tutmak için (makinenin RAM yarısından fazla ideal olarak) gerekli olduğu gibi Elasticsearch kullanımınız için genel maksimum çalışma seti boyutu. Bu, OS'nin IO önbellekleme için yönetmesi için kalan (umutlu büyüklükte) RAM'i bırakır.
  • İstemci tarafında, her zaman birden çok belgeyi bir istekte dizine ekleyen toplu api'yi kullanın ve her bir toplu isteği göndermek için doğru sayıda belgeyi deneyin. En uygun boyut, birçok faktöre bağlıdır, ancak çok fazla doküman yerine çok az yönüne yanlış girmeye çalışın. İstemci tarafı iş parçacıkları veya ayrı eşzamansız istekler ile eşzamanlı toplu istekleri kullanın. Daha ileri çalışma için

bu bağlantıların bakınız:

1) Performance considerations for elasticsearch indexing

2) en HTTP isteği boyutu için Document maximum size for bulk indexing over HTTP

+1

, bkz https://github.com/elastic/elasticsearch /blob/148265bd164cd5a614cd020fb480d5974f523d81/docs/reference/modules/http.asciidoc – vvs14

İlgili konular