Hvis du har brug for at beregne tekstlighed på about
felt, er en måde at opnå dette på at bruge tekstindeks
.
For eksempel (i mongo
shell), hvis du opretter et tekstindeks på about
felt:
db.collection.createIndex({about: 'text'})
du kan udføre en forespørgsel som (eksempel taget fra https://docs.mongodb.com/manual/reference/operator/query/text/#sort-by-text-search-score ):
db.collection.find({$text: {$search: 'similarity in comparison'}}, {score: {$meta: 'textScore'}}).sort({score: {$meta: 'textScore'}})
Med dine eksempeldokumenter skulle forespørgslen returnere noget som:
{
"_id": "foobar1",
"about": "similarity in comparison",
"score": 1.5
}
{
"_id": "foobar2",
"about": "perfect similarity in comparison",
"score": 1.3333333333333333
}
{
"_id": "foobar3",
"about": "partial similarity",
"score": 0.75
}
som er sorteret efter faldende lighedsscore. Bemærk venligst, at i modsætning til dit eksempelresultat, dokument foobar4
returneres ikke, fordi ingen af de forespurgte ord findes i foobar4
.
Tekstindekser betragtes som en særlig type indeks i MongoDB, og kommer derfor med nogle specifikke regler for dets brug. For flere detaljer, se venligst: