【发布时间】:2012-04-03 14:29:05
【问题描述】:
我有 150 万条记录,每条记录都有一个包含大量文本的文本字段“正文”。我正在使用正则表达式对这些文档执行全文搜索,但没有注意到索引数据和不索引数据之间的查询时间有任何差异。
我确保“body”字段上有索引
db.documents.ensureIndex({ body: 1 });
MongoDB 花了一些时间来索引数据,当我运行时
db.documents.getIndexes()
它表明我在集合的“body”字段上有一个索引。但是查询在索引之前和之后仍然需要相同的时间。
如果我运行查询
db.documents.find({ body: /test/i });
我希望它运行得更快,因为数据已编入索引。当我这样做时
db.documents.find({ body: /test/i }).explain();
mongo 告诉我它在 body 字段上使用 BTreeCursor。
我在这里做错了吗?为什么文本数据被索引后查询时间不会减少?
【问题讨论】: