Как я могу ранжировать результаты поиска в mongodb

#c# #mongodb #search #nosql

#c# #mongodb #Поиск #nosql

Вопрос:

допустим, я хочу выполнить поиск в документе по этому имени «мой джон», и в документе есть такие имена, как

  1. «меня зовут Джон»
  2. «мой — джон»
  3. «джон Адам»
  4. «мой адрес»
  5. «джон»

я хочу получить ранг результата, например, 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" }
                } }
            })
    }