1

我已经安装了一个连接 mongodb 和 elasticsearch 的 elasticsearch 河(使用这个插件)。我为 mongodb 定义了某个模式,并为 elasticsearch 定义了某个映射。

我找不到有关如何从 mongodb 中排除字段不被河流处理的任何信息。我认为可行的最接近的事情是将这些字段的弹性搜索映射修改为store:no,index:not_analyzed,include_in_all:false.

我仍然不清楚使用上述解决方案是否完全避免了任何处理,因为理论上所有 json 提交也存储在 _source 中。

有人对此有任何建议吗?

4

1 回答 1

2

是的,你可以在 mongo-river 中做。你需要在河流映射中指定排除字段。我附上了一个示例代码。。检查一下。

curl -XPUT 'http://IP:9200/_river/mongodb/_meta' -d '{
"type": "mongodb", 
"mongodb": { 
    "db": "DATABASE_NAME", 
    "collection": "COLLECTION", 
    "gridfs": true
}, "options": { 
  "secondary_read_preference" : true, 
  "drop_collection": ${mongo.drop.collection}, 
  "exclude_fields": ${mongo.exclude.fields},
  "include_fields": ${mongo.include.fields},
  "include_collection": ${mongo.include.collection},
  "import_all_collections": ${mongo.import.all.collections},
  "initial_timestamp": {
    "script_type": ${mongo.initial.timestamp.script.type},
    "script": ${mongo.initial.timestamp.script}
  },
  "skip_initial_import" : ${mongo.skip.initial.import},
  "store_statistics" : ${mongo.store.statistics},
},

"index": { 
    "name": "ES_INDEX_NAME", 
    "type": "ES_TYPE_NAME" 
}
}'

有关更多信息,请参阅: https ://github.com/richardwilly98/elasticsearch-river-mongodb/wiki

希望能帮助到你..!

于 2014-03-13T18:05:27.143 回答