Mongodb 建立索引失败

Mongodb index built failed

我有一个 MongoDB,大约有 80k 个文件,每个文件都是一个 titlebody_text 等条目。我想做 FullTextSearch,为此我使用以下命令创建文本索引的原因:

db.getCollection('arquivo_entry').createIndex({title:"text",body_text:"text"},{ weights:{title:2,body_text:1}},{default_language:"portuguese"})

索引构建失败,因为 运行 内存不足,它终止了 mongodb 运行 的作业。这是在日志中:

2018-03-22T14:58:12.017+0000 I - [initandlisten] Index Build: 2500/86187 2%

2018-03-22T14:58:15.028+0000 I - [initandlisten] Index Build: 6900/86187 8%

2018-03-22T14:58:18.012+0000 I - [initandlisten] Index Build: 12400/86187 14%

2018-03-22T14:58:21.065+0000 I - [initandlisten] Index Build: 17300/86187 20%

2018-03-22T14:58:24.047+0000 I - [initandlisten] Index Build: 22500/86187 26%

2018-03-22T14:58:27.043+0000 I - [initandlisten] Index Build: 28600/86187 33%

2018-03-22T14:58:30.013+0000 I - [initandlisten] Index Build: 34000/86187 39%

2018-03-22T14:58:32.478+0000 F - [initandlisten] out of memory.

现在的问题是我无法删除索引,每次我尝试启动数据库时,它都会开始自动重建索引。此外,我无法启动 mongodb shell。它给了我以下错误:

MongoDB shell version v3.6.3 connecting to: mongodb://127.0.0.1:27017

2018-03-22T15:08:38.688+0000 W NETWORK [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: Connection refused

2018-03-22T15:08:38.688+0000 E QUERY [thread1] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed :

connect@src/mongo/shell/mongo.js:251:13 @(connect):1:6

exception: connect failed

您可以使用 --noIndexBuildRetry 选项启动数据库,删除文本索引,然后像往常一样重新启动数据库。