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

Czy wyszukiwanie $text może wykonać częściowe dopasowanie?

MongoDB $text wyszukiwania nie obsługują częściowego dopasowania. MongoDB umożliwia wyszukiwanie tekstów w treści ciągu z obsługą niewrażliwości na wielkość liter, ograniczników, słów stopowych i rdzenia. A terminy w wyszukiwanym ciągu są domyślnie pisane OR.

Biorąc swoje (bardzo przydatne :) przykłady jeden po drugim:

JEDNORAZOWY, CZĘŚCIOWY

// returns nothing because there is no world word with the value `Crai` in your
// text index and there is no whole word for which `Crai` is a recognised stem
db.submissions.find({"$text":{"$search":"\"Crai\""}})

WIELE WARUNKÓW, KOMPLETNE

// returns the document because it contains all of these words
// note in the text index Dr. Bob is not a single entry since "." is a delimiter
db.submissions.find({"$text":{"$search":"\"Craig\" \"Dr. Bob\""}})

WIELE TERMINÓW, JEDEN CZĘŚCIOWY

// returns the document because it contains the whole word "Craig" and it 
// contains the whole word "Dr" 
db.submissions.find({"$text":{"$search":"\"Craig\" \"Dr. Bo\""}})

WIELE TERMINÓW, ZARÓWNO CZĘŚCIOWE

// returns the document because it contains the whole word "Dr"
db.submissions.find({"$text":{"$search":"\"Crai\" \"Dr. Bo\""}})

Pamiętaj, że $search ciąg to ...

Tak więc, jeśli co najmniej jeden termin w Twoim $search string pasuje, a MongoDB dopasowuje ten dokument.

Aby zweryfikować to zachowanie, jeśli edytujesz dokument zmieniając Dr. Bob do DrBob wtedy następujące zapytania zwrócą nie dokumenty:

db.submissions.find({"$text":{"$search":"\"Craig\" \"Dr. Bo\""}})
db.submissions.find({"$text":{"$search":"\"Crai\" \"Dr. Bo\""}})

Teraz nie zwracają żadnych dopasowań, ponieważ Dr nie jest już całym słowem w indeksie tekstowym, ponieważ nie następuje po nim . ogranicznik.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Wdrażanie paginacji za pomocą MongoDB, Express.js i Slush

  2. jak używać $lookup stage w java z wiosennym mongodbem?

  3. Co to jest $min MongoDB? Czym to się różni od find().sort({the_field:1}).limit(1)?

  4. MongoDB Wstaw zbiorczy Ignoruj ​​duplikat

  5. MongoDB - Użyj struktury agregacji lub mapreduce do dopasowania tablicy ciągów w dokumentach (dopasowanie profilu)