2017-03-01 46 views

回答

0

如果您使用Java來處理您的Elasticsearch服務器,我建議您改用Java API。在這裏你可以把它:https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/index.html

你可以找到如何做文件API /大宗原料藥的批量操作。

如果您仍然需要使用Java REST客戶端由於某種原因,你將需要建立Elasticsearch的散裝請求格式的有效載荷以便能夠執行請求。

請找出如何構建批量請求格式這裏:Elasticsearch 5.2的Java REST客戶端是基於字符串 https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html (基本上,它是從JSON對象的列表構造)

+2

彈性的,建議大家開始移動到REST客戶。 – whitfin

1

,可以成爲雜亂真的快。對於批量操作尤其如此,因爲它們是通過鏈接JSON對象構建的。

如果你想/必須通過REST客戶端連接到您的Elasticsearch集羣,我建議使用JEST client來代替。

下面是關於如何使用客戶端JEST散裝請求的例子:

// Construct a new Jest client according to configuration via factory 
JestClientFactory factory = new JestClientFactory(); 
factory.setHttpClientConfig(new HttpClientConfig 
         .Builder("http://localhost:9200") 
         .multiThreaded(true) 
         .build()); 
JestClient client = factory.getObject(); 

// Construct Bulk request from articles 
Bulk bulk = new Bulk.Builder() 
       .defaultIndex("twitter") 
       .defaultType("tweet") 
       .addAction(Arrays.asList(
        new Index.Builder(article1).build(), 
        new Index.Builder(article2).build())) 
       .build(); 

client.execute(bulk);