mongodb河为弹性研究

时间:2011-09-17 22:35:12

标签: mongodb node.js mongoose elasticsearch

有没有官方的mongodb河可用于弹性搜索?我通过mogoose模块在node.js中使用mongodb。 我在http://www.matt-reid.co.uk/blog_post.php?id=68

中看过一个

这是正确的吗?它虽然说非官方的......

编辑: 看起来,https://github.com/aparo/elasticsearch内置了mongodb插件..有没有关于如何使用mongodb配置这个以及mongodb如何将数据推送到elasticsearch进行索引的文档?

4 个答案:

答案 0 :(得分:4)

答案 1 :(得分:1)

答案 2 :(得分:0)

这不是你正在寻找的答案。我看着建立这个mongo河,但我发现它有一些内存泄漏的讨论,我不想乱用Java代码。我使用批量API编写了自己的mongo-> ES导入程序。

这是一项正在进行中的工作,所以请随时做出贡献! :)

https://github.com/orenmazor/elastic-search-loves-mongo

答案 3 :(得分:0)

是的,github上有一条新的MongoDB河:

https://github.com/richardwilly98/elasticsearch-river-mongodb

进一步说明您可以按照以下步骤操作:

第1步: - 安装

ES_HOME/bin/plugin -install elasticsearch/elasticsearch-mapper-attachments/1.4.0 
ES_HOME/bin/plugin -install richardwilly98/elasticsearch-river-mongodb/1.4.0

第2步: -Restart Elasticsearch

ES_HOME/bin/service/elasticsearch restart

步骤3: -Mongodb中的启用副本集

转到 mongod.conf &添加行

replSet=rs0

save&退出

重启mongod

Step.4: - 通过在终端中发出以下命令,通过弹性搜索来索引testmongo数据库中的“人物”集合

curl -XPUT 'http://localhost:9200/_river/mongodb/_meta' -d '{ 
    "type": "mongodb", 
    "mongodb": { 
        "db": "testmongo", 
        "collection": "person"
    }, 
    "index": {
        "name": "mongoindex", 
        "type": "person" 
    }
}'

Step.5: - 通过mongo终端向mongodb添加一些数据

use testmongo
var p = {firstName: "John", lastName: "Doe"}
db.person.save(p)

Step.6: - 使用此命令搜索数据

curl -XGET 'http://localhost:9200/mongoindex/_search?q=firstName:John'

注意:

DELETE /_river

DELETE/_mongoindex

再次运行此命令,

curl -XPUT 'http://localhost:9200/_river/mongodb/_meta' -d '{ 
    "type": "mongodb", 
    "mongodb": { 
        "db": "testmongo", 
        "collection": "person"
    }, 
    "index": {
        "name": "mongoindex", 
        "type": "person" 
    }
}'

Step.7: - 查看HQ插件

mongoindex中,您将获得数据。