Heb je de tekstzoekfunctie geprobeerd om te zien of deze niet correct werkte? Het werkt zoals verwacht voor mij op MongoDB 2.6.7:
> db.test.drop()
> db.test.insert({ "t" : "I'm on time, not late or delayed" })
> db.test.insert({ "t" : "I'm either late or delayed" })
> db.test.insert({ "t" : "Time flies like a banana" })
> db.test.ensureIndex({ "t" : "text" })
> db.test.find({ "$text" : { "$search" : "time late delay" } }, { "_id" : 0 })
{ "t" : "I'm on time, not late or delayed" }
{ "t" : "Time flies like a banana" }
{ "t" : "I'm either late or delayed" }
> db.test.find({ "$text" : { "$search" : "late delay" } }, { "_id" : 0 })
{ "t" : "I'm on time, not late or delayed" }
{ "t" : "I'm either late or delayed" }
> db.test.find({ "$text" : { "$search" : "late delay \"on time\"" } }, { "_id" : 0 })
{ "t" : "I'm on time, not late or delayed" }
Waarom staat "tijd" in de terms
array in de uitleg? Want als de zin "on time"
komt voor in een document, de term time
moet ook. MongoDB gebruikt de tekstindex voor zover mogelijk om de zin te lokaliseren en controleert vervolgens de indexresultaten om te zien welke daadwerkelijk overeenkomt met de volledige zin en niet alleen met de termen in de zin.