Есть документы вида
{
_id: ...,
description: " slovo slovo2 slovo3 ...."
}
В поле description скидываю весь текст по которому можно найти документ
Для этого поля создал индекс
db.collection.createIndex({ description: "text" })
Делаю простую выборку
return Collection.find({
$text: { $search: "slovo slovo2" }
}).limit(10)
Данный запрос выполняется относительно быстро, всего за 60ms
Но мне нужно сделать еще и сортировку, подсчитать "вес документа" и отсортировать их, поэтому делаю следующее
return Collection.find(
{ $text: { $search: "slovo slovo2" } },
{ score: { $meta: "textScore" } }
).limit(10)
Теперь запрос выполняет более чем за 3 секунды, почему так? Может быть нужно еще какой то индекс создать для score? Хотя пробовал и не помогло... (db.collection.createIndex({score: 1}))