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

Може ли $text търсене да извърши частично съвпадение

MongoDB $text търсенията не поддържат частично съвпадение. MongoDB позволява заявки за търсене на текст в съдържание на низове с поддръжка за нечувствителност към малки и главни букви, разделители, стоп думи и корени. И термините във вашия низ за търсене по подразбиране са с ИЛИ.

Взимам вашите (много полезни :) примери един по един:

ЕДИН СРОК, ЧАСТИЧЕН

// 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\""}})

НЯКОЛКО УСЛОВИЯ, ЗАВЪРШЕНИ

// 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\""}})

НЯКОЛКО УСЛОВИЯ, ЕДИН ЧАСТИЧЕН

// 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\""}})

НЯКОЛКО УСЛОВИЯ, И ДВАТА ЧАСТИЧНИ

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

Имайте предвид, че $search низът е ...

Така че, ако поне един термин във вашето $search низ съвпада, тогава MongoDB съвпада с този документ.

За да проверите това поведение, ако редактирате документа си, променяйки Dr. Bob до DrBob тогава следните заявки ще върнат не документи:

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

Те сега не връщат съвпадения, защото Dr вече не е цяла дума във вашия текстов индекс, защото не е последвана от . разделител.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Не може да импортира MongoClient

  2. Заявки с обединения и филтри в Mongoose

  3. Doctrine ODM / MongoDB не опитва повторно заявки?

  4. Има ли сравнение на NoSQL решения (кое е по-добро в определени ситуации?)

  5. Обработка на ISODate() на MongoDB при опит за анализиране на сериализиран JSON низ