mongodb - 为 Elasticsearch 设置 MongoDB River

标签 mongodb elasticsearch

好的,所以我在互联网上到处搜索有关如何设置 MongoDB 和 Elasticsearch 的文档。似乎主 elasticsearch github repo 中有一个 Mongodb River 插件,但没有文档。有没有人让这两种可爱的技术一起工作?

最佳答案

这是一个相当老的问题,但我会发布我的答案,以防其他人想知道同样的问题,尤其是在新版本的 ES 不断出现的情况下。我也花了一段时间才让我的 ES 与 MongoDB 一起工作。

  1. 首先,我假设你已经安装了 ES 和 MongoDB。如果您不使用副本集,请确保启用了 oplog。引用 here如何做到这一点。

  2. river 插件有一个依赖项(elasticsearch-mapper-attachments),所以请务必先安装它以防止以后出现任何问题。这个wiki具有安装插件所需的必要命令。如果您使用的是 ES 0.20.2 及更高版本,请注意 River 插件的备用下载链接。

  3. 重启 ES。

  4. 使用以下命令启用索引:

    curl -XPUT 'http://localhost:9200/_river/mongodb/_meta' -d '
    {
        "type": "mongodb",
        "mongodb": {
            "db": "your-database-name",
            "collection": "your-collection-name"
        },
        "index": {
            "name": "mongoindex",
            "type": "your-type"
        }
    }'
    
  5. 要进行搜索,请使用 curl -XGET 'http://localhost:9200/mongoindex/_search?q=field:value'

我的大部分信息来自 this website ,但我觉得它可以简化很多,因此我有自己的方法。

关于mongodb - 为 Elasticsearch 设置 MongoDB River,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9140661/

相关文章:

elasticsearch - 如何尽可能隔离 Elasticsearch 索引和搜索路径

spring - `ElasticsearchRepository` 中的所有方法均已弃用。我应该使用什么?

mongodb - 当从 mongoDB 中的上限集合中删除文档时,它会出错吗?

elasticsearch - Filebeat 到 logstash 的连接被拒绝

node.js - 哪些内置 MongoDB 角色允许用户创建新数据库和所有数据库的用户?

node.js - 如何在嵌套对象的嵌套数组中设置属性未定义

elasticsearch - 为什么Elastic Search返回此记录?

python-3.x - elasticsearch python parallel_bulk无法插入数据

javascript - 将嵌套文档集合转换为具有父引用的模型树结构

node.js - 如何使用 NodeJS 高效地将 300 万文档从 MongoDB Atlas 集合导出到 CSV 文件