2013-04-22 67 views
0

我正嘗試在MongoDB和ElasticSearch之間使用Java API創建一條新河。使用REST API非常容易使用以下JSON製作PUT請求使用Java API在Elasticsearch中創建MongoDB河流

{ 
    "type": "mongodb", 
    "mongodb": { 
    "servers": [ 
     { "host": "127.0.0.1", "port": 27017 } 
    ], 
    "options": { "secondary_read_preference": true }, 
    "db": "test", 
    "collection": "collectionTest" 
    }, 
    "index": { 
    "name": "testIndex", 
    "type": "default" 
    } 
} 

但是我遇到了幾個Java API的問題。我正在嘗試使用CreateIndexRequestBuilder類,但我不知道如何指定參數。

它們是自定義參數嗎?什麼來源?我很迷路...

謝謝你提前!

回答

4

您需要將編號爲_meta的文檔添加到_river索引。該類型是您想要提供給您的索引的名稱。要發送的文檔是包含您的河流所需配置的json。除了依賴於河流的自定義配置之外,json文檔需要包含type的屬性,其中包含河流本身使用的名稱以註冊RiverModule。對於mongodb河,它是mongodb。你發佈的json就是你必須發送的源代碼。

下面是你需要的代碼:

client.index(Requests.indexRequest("_river").type("my_river").id("_meta").source(source)).actionGet(); 
+0

謝謝!!我想強調'my_river'是要創建的索引的名稱 – Quaiks 2013-04-24 16:06:56

+0

沒有意識到這一點,我想這是你沒有在配置中指定索引對象的情況。 – javanna 2013-04-24 17:46:18