Wenn Sie die Textähnlichkeit für about
berechnen müssen Feld ist eine Möglichkeit, dies zu erreichen, die Verwendung von Textindex
.
Zum Beispiel (im mongo
Shell), wenn Sie einen Textindex auf about
erstellen Feld:
db.collection.createIndex({about: 'text'})
Sie könnten eine Abfrage ausführen wie (Beispiel aus 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'}})
Bei Ihren Beispieldokumenten sollte die Abfrage etwa Folgendes zurückgeben:
{
"_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
}
die nach absteigendem Ähnlichkeitswert sortiert sind. Bitte beachten Sie, dass im Gegensatz zu Ihrem Beispielergebnis foobar4
dokumentiert wird wird nicht zurückgegeben, da keines der abgefragten Wörter in foobar4
vorhanden ist .
Textindizes gelten in MongoDB als besonderer Indextyp und enthalten daher einige spezifische Regeln für seine Verwendung. Weitere Einzelheiten finden Sie unter: