[英]Index mongoDB with 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"
}
}'
我只是想得到有country:Canada
事件country:Canada
所以我嘗試:
$ curl -XGET 'http://localhost:9200/database_test/_search?q=country:Canada'
我得到:
{
"took": 2,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 0,
"max_score": null,
"hits": []
}
}
我在網上搜索,我讀到我應該首先用Elasticsearch索引我的收藏(丟失鏈接)。 我應該索引我的Mongodb嗎? 如何從現有的MongoDB集合中獲取結果?
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的版本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.