For AI agents: a documentation index is available at https://www.mongodb.com/pt-br/docs/llms.txt — markdown versions of all pages are available by appending .md to any URL path.
Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Menu Docs

Classificar os documentos nos resultados

A cada documento retornado por uma query do MongoDB Search ou do MongoDB Vector Search é atribuída uma pontuação com base na relevância, e os documentos incluídos em um conjunto de resultados são retornados na ordem da pontuação mais alta para a mais baixa.

Para incluir a pontuação de cada documento nos resultados da pesquisa, use o estágio $project no seu pipeline de agregação.

  • For the $search stage, the score field takes the $meta expression, which requires the searchScore value. You can also specify the searchScoreDetails value for the scoreDetails field $meta expression for a detailed breakdown of the score.

  • For the $vectorSearch stage, the score field takes the $meta expression, which requires the vectorSearchScore value to return the score of each document in your vector search results.

Observação

Você pode usar:

Se você usar searchScore e vectorSearchScore em qualquer outra query, o MongoDB registra um aviso a partir do MongoDB v8.2.

Exemplo

A query a seguir utiliza um estágio $project para adicionar um campo chamado score aos documentos retornados:

1db.movies.aggregate([
2 {
3 "$search": {
4 "text": {
5 <operator-specification>
6 }
7 }
8 },
9 {
10 "$project": {
11 "<field-to-include>": 1,
12 "<field-to-exclude>": 0,
13 "score": { "$meta": "searchScore" }
14 }
15 }
16])
1db.movies.aggregate([
2 {
3 "$search": {
4 "text": {
5 <operator-specification>
6 },
7 "scoreDetails": true
8 }
9 },
10 {
11 "$project": {
12 "<field-to-include>": 1,
13 "<field-to-exclude>": 0,
14 "scoreDetails": { "$meta": "searchScoreDetails" }
15 }
16 }
17])

Para saber mais, consulte retornar os detalhes da pontuação de pesquisa.

1db.movies.aggregate([
2 {
3 "$vectorSearch": {
4 <query-syntax>
5 }
6 },
7 {
8 "$project": {
9 "<field-to-include>": 1,
10 "<field-to-exclude>": 0,
11 "score": { "$meta": "vectorSearchScore" }
12 }
13 }
14])

Para saber mais, consulte Pontuação de pesquisa vetorial do MongoDB.

A pontuação atribuída a um documento retornado faz parte dos metadados do documento. Você pode usar uma fase $project no seu pipeline de agregação para incluir a pontuação de cada documento retornado junto com o conjunto de resultados. Os documentos retornam da pontuação mais alta para a mais baixa. Muitos fatores podem influenciar a pontuação de um documento, incluindo o seguinte:

  • Posição do termo de pesquisa no documento.

  • Frequência de ocorrência do termo de pesquisa no documento.

  • Tipo de operador ou analisador que uma query do MongoDB Search usa.

Para saber mais sobre o algoritmo de pontuação Lucene, consulte a documentação do Lucene.

Além do comportamento de pontuação padrão, o MongoDB Search oferece suporte às seguintes opções:

Se vários documentos nos resultados tiverem pontuações idênticas, a ordem dos documentos nos resultados não será determinística. Se você quiser que os resultados do MongoDB Search tenham uma ordem determinada, inclua a opção de classificação em seu estágio $search para classificar os resultados por um campo exclusivo. Você pode usar a opção de classificação para também retornar uma classificação ascendente dos resultados por pontuação. Para saber mais, consulte Classificar Resultados da Pesquisa MongoDB e Classificar por Exemplos de Pontuação.

On separate Search Nodes, each node assigns documents different internal Lucene IDs used for sorting when scores are identical. When sorting and paginating results, the mongot process on the node that is processing the query might include documents from other nodes if their internal IDs have greater pagination order than the token. To prevent this, use $match after $search to exclude documents by their _id.

Ao executar query de valores de array, o MongoDB Pesquisa atribui pontuações mais altas se mais valores na array corresponderem à query.

Para obter exemplos sobre como usar opções adicionais score em suas queries no MongoDB Search, consulte as seguintes páginas:

Para obter exemplos sobre como usar o campo score em algumas consultas comuns do MongoDB Search, consulte as seguintes páginas: