2015-10-16 6 views
0

У меня есть коллекция с тысячами документов, каждая из которых содержит строку для поиска. Я хотел бы сделать индекс для этих строк, как так:mongodb search indexing performance

индекс а «яблоко»

индексировать «произвольное значение»

Индекс S «что-то»

Я думаю, что будет быть в состоянии улучшить производительность поиска, если я создам эти индексы, чтобы при поиске «что-то» я могу искать документы только в индексе ». Я новичок в дизайне базы данных и задаюсь вопросом, является ли это правильным способом повысить производительность запросов со строковыми значениями. Есть ли лучший способ сделать это или у mongodb есть встроенный механизм для достижения такого рода индексации? Пожалуйста, просветите меня.

+0

По мне это может быть обработан с помощью текстового поиска двигателя, как Lucene, Solr. В настоящее время они интегрируются с базами данных nosql. Я думаю, что Монго поддерживает Solr. Механизм mongodb по умолчанию не поддерживает такие индексы. –

ответ

0

Вы можете создавать индексы на основе ключей, а не на значениях.

  • Каждый документ будет иметь индекс по умолчанию, созданный в поле _id.
  • Вы также можете создать составной индекс, т.е. объединить по или больше полей
  • Создание индекса должно соответствовать вашему запросу, чтобы ваши поисковые запросы были быстрее.

http://docs.mongodb.org/manual/indexes/