Pokud potřebujete vypočítat podobnost textu na about
Jedním ze způsobů, jak toho dosáhnout, je použít textový index
.
Například (v mongo
shell), pokud vytvoříte textový index na about
pole:
db.collection.createIndex({about: 'text'})
můžete provést dotaz, jako je (příklad převzat z 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'}})
U vašich vzorových dokumentů by měl dotaz vrátit něco jako:
{
"_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
}
které jsou seřazeny podle klesajícího skóre podobnosti. Upozorňujeme, že na rozdíl od výsledku vašeho příkladu dokument foobar4
není vráceno, protože žádné z dotazovaných slov není přítomno v foobar4
.
Textové indexy jsou v MongoDB považovány za speciální typ indexu, a proto přicházejí s některými specifickými pravidly pro jeho použití. Další podrobnosti naleznete na adrese: