#c# #mongodb #search #nosql
#c# #mongodb #Поиск #nosql
Вопрос:
допустим, я хочу выполнить поиск в документе по этому имени «мой джон», и в документе есть такие имена, как
- «меня зовут Джон»
- «мой — джон»
- «джон Адам»
- «мой адрес»
- «джон»
я хочу получить ранг результата, например, 1 имеет два одинаковых слова 2 имеет два одинаковых слова 3 имеет одно и то же слово 4 имеет одно слово 5 имеет одно и то же слово
как я могу сделать это с помощью поиска MongoDB в C#
Комментарии:
1. вы должны посмотреть на TF-IDF в Lucene и стоп-слова. # 2 должен иметь наивысший рейтинг с
English
помощью анализатора в MongoDB Atlas Search
Ответ №1:
Смотрите документацию. Atlas Search ( $search
) имеет больше вариантов ранжирования, чем текстовые индексы.
Ответ №2:
@Abdelrhman_Abdo запрос будет выглядеть примерно так, хотя вам нужно заменить имя индекса на ваше имя индекса, если вы его создаете:
using MongoDB.Bson;
using MongoDB.Driver;
new BsonArray
{
new BsonDocument("$search",
new BsonDocument
{
{ "index", "default" },
{ "text",
new BsonDocument
{
{ "query", "my jon" },
{ "path", "name" }
} }
})
}