使用Java API在Elasticsearch中创建MongoDB河

时间:2013-04-22 15:53:30

标签: java mongodb elasticsearch

我正在尝试使用Java API创建MongoDB和ElasticSearch之间的新河流。使用REST API很容易通过以下JSON发出PUT请求

{
  "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类,但我不知道如何指定参数。

他们是自定义参数吗?来源怎么样?我很丢失......

提前谢谢!

1 个答案:

答案 0 :(得分:4)

您需要向_meta索引添加标识为_river的文档。类型是您要为索引指定的名称。要发送的文档是一个包含河流所需配置的json。除了依赖于河流的自定义配置之外,json文档还需要包含属性type,该属性包含河流本身用于注册RiverModule的名称。对于mongodb河,它是mongodb。您发布的json正是您必须发送的来源。

以下是您需要的代码:

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