我正在尝试使用Elasticsearch索引存储在MongoDB中的所有文件。但只有180842个文件被编入索引,而我的数据库中有1637870个文件。知道为什么不将所有文件编入索引?
我检查了Elasticsearch日志文件,没有错误。但是我在日志文件中找到了以下行。
(1) [2013-09-11 02:20:57,539][INFO ][river.mongodb ] [Arsenic] [mongodb][mongodb] Add attachment: 522bef23649dd3bb06a61fd8
(2) [2013-09-11 02:20:57,539][INFO ][org.elasticsearch.river.mongodb.MongoDBRiver$Indexer] Add Attachment: 522bef0fe819cc4b70875a48 to index mongoindex / type files
(3) [2013-09-11 02:20:57,539][INFO ][river.mongodb ] [Arsenic] [mongodb][mongodb] Caught file: 522bef230eb5b705cf8ccd91 - /data/Test.java
第(2)行表示该文件已添加到我的索引中。我不确定Line(1)和(3)的含义。这是否意味着这些文件没有添加到索引?
注意我使用以下代码创建索引:
curl -XPUT 'http://localhost:9200/_river/mongodb/_meta' -d '{
"type": "mongodb",
"mongodb": {
"db": "submission_data",
"collection": "fs",
"gridfs": true
},
"index": {
"name": "mongoindex",
"type": "files"
}
}'
答案 0 :(得分:0)
我遇到了同样的问题。
如果您有很多集合,请尝试一次索引一个,然后重新启动elasticsearch。 禁用gridfs并查看我如何在mongodb上创建索引:
curl -XPUT "localhost:9200/_river/mongosearch/_meta" -d ' { "type": "mongodb", "mongodb": { "servers": [ { "host": "localhost", "port": 27017 } ], "options": { "secondary_read_preference": false }, "db": "mydbname", "collection": "users", "gridfs": false }, "index": { "name": "mongosearch", "type": "users" } }'
修改强> 上面的脚本执行以下操作:
告诉该索引名为mongosearch。
在端口27017中定义在localhost上运行的服务器。
Dont river shards(二级阅读偏好)。
数据库的名称是nydbname。
将转到索引的集合是users集合。 “
gridfs是关于存储文档的内容。
最后我们再次定义索引名称并告诉我们要索引的集合类型。
答案 1 :(得分:0)
实际上是因为你的oplog大小很小。它是一个有上限的集合。如果你增加你的oplog大小,那么它将工作..!