Я пытаюсь отправить текстовый запрос коллекции и получить результаты в порядке текстового совпадения. документы довольно хорошо объясните, как это сделать в оболочке:
db.articles.find(
{ status: "A", $text: { $search: "coffee cake" } },
{ score: { $meta: "textScore" } }
).sort( { date: 1, score: { $meta: "textScore" } } )
но требует проекции дополнительного поля score
из находки в сортировку.
В C# у меня есть функция, которая выглядит так:
public IEnumerable<T> TextSearch<T>(MongoCollection<T> coll, string text) {
var cursor = coll.Find(Query.Text(text))
.SetSortOrder(SortBy<T>.MetaTextScore(???));
foreach(var t in cursor) {
// strip projected score from value
yield return t;
}
}
но я не знаю, как проецировать значение textScore в свои результаты, чтобы я мог укажите столбец до MetaTextScore
в SetSortOrder
.