MongoDB позволява само един текстов индекс на колекция.
Но можете да използвате текстов индекс, който обхваща множество полета:
db.collection.ensureIndex( {
description: "text",
title: "text"
} );
По този начин ще получите резултати, когато фразата, която търсите, бъде намерена и в двете. Когато това не е това, което искате, например когато имате две заявки за търсене, всяка от които връща резултати от едно от полетата, но не и от другото, имате две опции.
- използвайте текстов индекс с много полета, но отхвърляйте резултатите, които идват от грешното поле на приложния слой.
- извлечете едно от двете полета в различна колекция. Документите в тази колекция могат да съдържат пълни копия, редактирани копия или само полето, което индексирате, и
_id
на оригиналния документ.