about
でテキストの類似性を計算する必要がある場合 フィールドでは、これを実現する1つの方法は、テキストインデックス
を使用することです。 。
たとえば(mongo
シェル)、about
にテキストインデックスを作成する場合 フィールド:
db.collection.createIndex({about: 'text'})
次のようなクエリを実行できます( 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'}})
サンプルドキュメントでは、クエリは次のようなものを返す必要があります:
{
"_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
}
これは、類似度スコアの降順で並べ替えられます。結果の例とは異なり、foobar4
を文書化することに注意してください。 クエリされた単語がfoobar4
に存在しないため、は返されません。 。
テキストインデックスは、MongoDBでは特殊なタイプのインデックスと見なされるため、その使用法に関する特定のルールが付属しています。詳細については、以下を参照してください: