Dio*_*lor 8 mongodb elasticsearch
我已经拥有MongoDB并使用Mongoriver安装了Elasticsearch .所以我建立了我的河流:
$ curl -X PUT localhost:9200/_river/database_test/_meta -d '{
"type": "mongodb",
"mongodb": {
"servers": [
{
"host": "127.0.0.1",
"port": 27017
}
],
"options": {
"secondary_read_preference": true
},
"db": "database_test",
"collection": "event"
},
"index": {
"name": "database_test",
"type": "event"
}
}'
Run Code Online (Sandbox Code Playgroud)
我只是想得到country:Canada
我尝试过的事件:
$ curl -XGET 'http://localhost:9200/database_test/_search?q=country:Canada'
Run Code Online (Sandbox Code Playgroud)
我得到:
{
"took": 2,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 0,
"max_score": null,
"hits": []
}
}
Run Code Online (Sandbox Code Playgroud)
我在网上搜索,我读到我应该首先用Elasticsearch索引我的收藏(丢失链接).我应该索引我的Mongodb吗?如何从现有的MongoDB集合中获取结果?
Rod*_*ade 18
mongodb河依赖于MongoDB的操作日志来索引文档,因此需要将mongo数据库创建为副本集.我假设你错过了它,所以当你创建河流时,初始导入看不到索引.我也假设您使用的是Linux,并且掌握了shell cli工具,请尝试以下操作:
跟着这些步骤:
编辑mongodb.conf(通常在/etc/mongodb.conf中,但在安装方式上有所不同)并添加以下行:
replSet = rs0
"rs0"是复制品的名称,它可以是您喜欢的任何名称.
重启你的mongo然后登录它的控制台.类型:
rs.initiate()
rs.slaveOk()
提示将更改为 rs0:PRIMARY>
我建议使用这个插件:http://mobz.github.io/elasticsearch-head/来浏览你的索引和河流,并确保你的数据被索引.
如果这不起作用,请发布您用于mongodb-river-plugin,elasticsearch和mongodb的版本.
归档时间: |
|
查看次数: |
9707 次 |
最近记录: |