sql >> Database >  >> NoSQL >> MongoDB

Kan een $text-zoekopdracht een gedeeltelijke overeenkomst opleveren?

MongoDB $text zoekopdrachten ondersteunen geen gedeeltelijke matching. MongoDB staat tekstzoekopdrachten toe op tekenreeksinhoud met ondersteuning voor ongevoeligheid voor hoofdletters, scheidingstekens, stopwoorden en stemming. En de termen in uw zoekreeks zijn standaard OR'ed.

Uw (zeer nuttige :) voorbeelden één voor één bekijken:

EEN TERMIJN, GEDEELTELIJK

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

MEERDERE VOORWAARDEN, VOLLEDIG

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

MEERDERE VOORWAARDEN, EEN GEDEELTELIJKE

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

MEERDERE VOORWAARDEN, BEIDE GEDEELTELIJK

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

Houd er rekening mee dat de $search tekenreeks is ...

Dus, als ten minste één term in uw $search string overeenkomt, dan komt MongoDB overeen met dat document.

Om dit gedrag te verifiëren, moet u uw document wijzigen door Dr. Bob naar DrBob dan zullen de volgende vragen nee . opleveren documenten:

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

Deze retourneren nu geen overeenkomsten omdat Dr is niet langer een heel woord in uw tekstindex omdat het niet wordt gevolgd door de . scheidingsteken.



  1. Opvallende kenmerken van MapReduce - Belang van MapReduce

  2. Object met ObjectId verwijderen uit array in Mongoose/MongoDB

  3. MapVerminder schuifelen en sorteren in Hadoop

  4. Maak een wildcard-tekstindex in MongoDB