У меня есть 1,5 миллиона записей, каждая с текстовым полем «тело», которое содержит много текста.Я выполняю полнотекстовый поиск по этим документам с помощью регулярного выражения, но не заметил никакой разницы во времени запросов между индексированием данных и их отсутствием.
Я убедился, что индекс "поле body через
db.documents.ensureIndex({ body: 1 });
MongoDB заняло несколько минут для индексации данных, и когда я запустил
db.documents.getIndexes()
, он показалчто у меня был индекс в поле "тело" коллекции.Но запросы по-прежнему занимают одинаковое количество времени до и после индексации.
Если я выполню запрос
db.documents.find({ body: /test/i });
, я ожидаю, что он будет выполняться быстрее, поскольку данныеиндексируется.Когда я делаю
db.documents.find({ body: /test/i }).explain();
Монго говорит мне, что он использует BTreeCursor на поле тела.
Я что-то здесь не так делаю?Почему бы после того, как текстовые данные были проиндексированы, не было бы уменьшения времени запроса?