MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Wyszukiwanie pełnotekstowe MongoDB - dopasowywanie słów i dokładnych fraz

Czy wypróbowałeś wyszukiwanie tekstowe, aby sprawdzić, czy nie działa poprawnie? Działa zgodnie z oczekiwaniami w 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" }

Dlaczego w terms jest „czas”? tablica w wyjaśnieniu? Bo jeśli fraza "on time" występuje w dokumencie, termin time musi również. MongoDB używa indeksu tekstowego w zakresie, w jakim może, aby pomóc zlokalizować frazę, a następnie sprawdzi wyniki indeksu, aby zobaczyć, które faktycznie pasują do pełnej frazy, a nie tylko do terminów we frazie.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak używać $regex w zapytaniu agregującym mongodb w $match

  2. java mongo db wyrażenie regularne nieliterowe

  3. użycie podwójnych cudzysłowów jako ciągu

  4. TypBłąd w metodzie statycznej modelu mangusty

  5. Jak pobrać różne klucze wewnątrz obiektu w MongoDB?