sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB fulltextsökning - matchande ord och exakta fraser

Testade du textsökningen för att se om den inte fungerade korrekt? Det fungerar som förväntat för mig på 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" }

Varför står "tid" i terms array i förklara? För om frasen "on time" förekommer i ett dokument, termen time måste också. MongoDB använder textindexet i den utsträckning det kan för att hjälpa till att hitta frasen och kommer sedan att kontrollera indexresultaten för att se vilken som faktiskt matchar hela frasen och inte bara termerna i frasen.




  1. Node.js MongoDB Hitta med projektion för att utesluta _id returnerar det fortfarande

  2. MongoError:kunde inte ansluta till servern [localhost:27017] vid första anslutningen

  3. MongoDB C# Fråga för "Gilla" på sträng

  4. Hur kan jag hitta inbäddade Mongoid-dokument baserat på flera kriterier?