MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Пълнотекстово търсене на MongoDB - съвпадение на думи и точни фрази

Опитахте ли текстовото търсене, за да видите дали не се държи правилно? Работи както се очаква за мен на 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" }

Защо "време" е в terms масив в обяснението? Защото ако фразата "on time" се среща в документ, терминът time трябва също. MongoDB използва текстовия индекс до степента, в която може, за да помогне за намирането на фразата и след това ще провери резултатите от индекса, за да види кой всъщност съвпада с цялата фраза, а не само с термините във фразата.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Рекурсивно търсене на колекция в MongoDB

  2. Върната стойност на Meteor като низ

  3. Не може да се инсталира правилно mongodb на ubuntu 18.04 LTS

  4. Не получавайте req.query.name към collection.find в express и MongoDB

  5. Как да получа всички поддокументи с определена стойност на определено поле?