2016-09-29 23 views
0

我張貼這樣的:Java的彈性極限後execiton時間

Settings settings = Settings.settingsBuilder() 
         .put("cluster.name", "cluster-name") 
         .build(); 

       client = TransportClient.builder() 
         .settings(settings) 
         .build(); 

       client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("my.elastic.server"), 9300)); 

       IndexResponse response = client 
         .prepareIndex("myindex", "info") 
         .setSource(data) //here data is stored in a Map 
         .get();  

data可能是2MB左右或更多,我關心它會被髮布到彈性的速度。限制那個時間的最好方法是什麼?這樣Elastic Java API功能還是可能在單獨的Thread或其他內容中運行發佈?謝謝

回答

0

您可以利用Java中的Spring Data ElasticsearchSpring Batch來創建索引批處理作業。通過這種方式,您可以將數據分成更小的塊,以便更頻繁但更小的寫入到索引。

如果您的工作足夠大(數百萬條記錄),您可以利用multi-threaded batch job,並大大縮短生成索引所需的時間。儘管這對於較小的索引可能有些過分。