如何使用传输器为mongodb的特定数据库的特定集合建立索引(elasticsearch)?

时间:2018-08-14 11:52:29

标签: mongodb elasticsearch compose

我只想在使用运输工具的弹性搜索中为特定的mongodb集合编制索引。 Mongodb服务器具有多个具有多个集合的数据库。我不想索引整个数据库。

1 个答案:

答案 0 :(得分:0)

如果您只想复制my_instance集合中的文档,请在管道中使用名称空间过滤器,即

var source = mongodb({
    "uri": "mongodb://172.31.38.157:27017/STOREDB",
    "timeout": "30s",
    "read_preference": "Primary"
})

var sink = elasticsearch({
    "uri": "http://172.31.38.157:9200/INDEX_NAME" 
})

t.Source("source", source, "/^my_instance$").Save("sink", sink, "/.*/")

此外,如果只希望从所选集合中获取特定数据,则collection_filters设置将转换为mongodb查询。以下注释掉的示例仅包括i字段的值大于10的文档。

var source = mongodb({
  "uri": "mongodb://127.0.0.1:27017/test"
  // "timeout": "30s",
  // "tail": false,
  // "ssl": false,
  // "cacerts": ["/path/to/cert.pem"],
  // "wc": 1,
  // "fsync": false,
  // "bulk": false,
  // "collection_filters": "{\"foo\": {\"i\": {\"$gt\": 10}}}"
})