Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

$rerank Estágio do pipeline de agregação

$rerank

O estágio reordena os $rerank documentos de entrada usando os modelos de reclassificação da Voyage AI e retorna os mesmos documentos classificados por relevância para a query. O $rerank estágio pode aparecer em qualquer lugar em um pipeline de agregação . O MongoDB recomenda que você utilize $rerank após um $vectorSearch $searchestágio,, $rankFusion $scoreFusion ou.

Um estágio de pipeline do $rerank tem a seguinte sintaxe:

{
"$rerank": {
"query": {
"text": "<query-text>"
},
"path": "<text-field-name>",
"numDocsToRerank": <number-of-documents-to-rerank>,
"model": "<reranker-model>"
}
}

O estágio $rerank recebe um documento com os seguintes campos:

Campo
Tipo
necessidade
Descrição

query

Objeto

Obrigatório

Query a ser usada para reclassificação.

query.
text

String

Obrigatório

Texto da query a ser usado para reclassificação. Por exemplo, você pode especificar:

  • O que você está procurando

  • Quais campos de um documento são mais relevantes

  • Informações complementares para esclarecer queries ambíguas

path

string ou matriz de strings

Obrigatório

Caminho para os campos a serem usados na reclassificação. Se $rerank for um estágio intermediário, especifique um campo a partir dos resultados do estágio anterior.

NOTA: a query $rerank falhará se os campos especificados em path não existirem. Use um estágio $match anterior para filtrar documentos com campos ausentes ou use $set para definir campos ausentes como "".

numDocsToRerank

Int

Obrigatório

Número máximo de documentos a serem enviados à IA do Voyage para reclassificação e retorno nos resultados. Os documentos são selecionados com base na ordem dos documento definida para o pipeline.

O valor máximo deve ser menor ou igual a 1000.

model

Objeto

Obrigatório

Modelo de IA Voyage a ser usado para reclassificar os documentos. O valor pode ser um dos seguintes:

  • rerank-2.5 - Reclassificação generalista otimizada para qualidade com suporte a instruções e multilíngue.

  • rerank-2.5-lite - Reclassificação generalista otimizada para latência e qualidade com acompanhamento de instruções e suporte multilíngue.

  • rerank-2 - Modelo legado.

  • rerank-2-lite - Modelo legado.

Revise os requisitos, limitações e comportamento do $rerank antes de utilizar o $rerank.

Para usar $rerank:

  • Certifique-se de que seu cluster esteja executando o MongoDB 8.3 ou posterior selecionando Latest version with auto-upgrades na página Cluster Builder da UI do Atlas .

  • Ative a reclassificação nativa por meio Project Settings de. Para saber mais, consulte Habilitar ou desabilitar a reclassificação nativa.

Você não pode usar o estágio $rerank:

  • Para sistemas autogerenciados ou Atlas Local.

  • Para $rankFusion ou pipelines de $scoreFusion entrada.

  • Para fazer query sobre uma Visualização.

    Se você tiver um índice do MongoDB Search ou do MongoDB Vector Search em uma visualização, consulte o índice executando .aggregate() na collection de origem em vez da visualização.

$rerank pode aparecer em qualquer lugar no pipeline. No entanto, o MongoDB recomenda o uso de $rerank após um estágio como $search ou,$vectorSearch que já retorna documentos relevantes em uma ordem de classificação.

$rerank reclassifica e retorna os primeiros numDocsToRerank documentos que são passados para o estágio. Se $rerank for o primeiro estágio, ou se os estágios anteriores não retornarem resultados classificados deterministicamente, os documentos usados para $rerank poderão mudar entre as queries.

$rerank retorna um erro se qualquer um dos campos especificados em path não estiver presente em um ou mais documentos de entrada. Para mitigar isso, use o:

  • $set estágio para definir campos ausentes em uma string vazia.

  • $match para filtrar documentos onde faltam campos.

O query.text campo determina como o modelo de reclassificação pontua cada documento. O modelo de reclassificação Voyage especificado calcula uma pontuação de relevância entre o texto da query e o conteúdo de cada documento no especificado.path Para a maioria dos casos de uso, defina $rerank.query.text para o mesmo texto ou texto semelhante ao da query do $search $vectorSearch estágio ou anterior.

Use a variável score com a expressão $meta para recuperar a pontuação de cada documento nos resultados do estágio $rerank.

Exemplo: adicionar pontuação de reclassificação ao pipeline
{
"$addFields": {
"rerankScore": { "$meta": "score" }
}
}

O estágio $rerank substitui o valor de $meta: "score" por uma nova pontuação. Para preservar o valor de um estágio anterior como $rankFusion, você pode projeto as pontuações em campos nomeados antes do estágio $rerank.

Exemplo: Preservar pontuação do estágio anterior
{
"$addFields": {
"originalRankFusionScore": { "$meta": "score" }
}
},
{
"$rerank": {
...
}
},
{
"$addFields": {
"rerankScore": { "$meta": "score" }
}
}

O $rerank estágio pode ser computacionalmente caro, dependendo do tamanho da entrada, como os campos a serem reclassificados, o número de documentos a serem reclassificados e o texto da query. O$rerank processa queries e documentos em conjunto no momento da query. Portanto, $rerank pode ser mais lento do que a pesquisa de relevância alimentada por um índice, como os índices para $search ou. Para equilibrar precisão e desempenho,$vectorSearch configure numDocsToRerank e path para limitar o tamanho da entrada. não executa modelos de reclassificação do Voyage AI em seus recursos do Atlas$rerank cluster.

$rerank é mais adequado para volumes de trabalho em que a qualidade da recuperação é priorizada em relação à latência ultrabaixa, como aplicativos RAG e IA de agentes. Para volumes de trabalho que exigem latência ultrabaixa, o MongoDB recomenda o uso de um estágio de pesquisa alimentada por índice como $search ou $vectorSearch.

O exemplo a seguir demonstra como usar o estágio $rerank para reordenar documentos na coleção sample_mflix.embedded_movies com base em um modelo de reclassificação do Voyage AI. A query usa $rerank após o estágio $match para reordenar documentos usando o modelo de reclassificação rerank-2.5. No seguinte pipeline de agregação ,:

  • $match O estágio filtra os documentos para incluir somente documentos que tenham um campo plot do tipo string.

  • $sort O estágio classifica os documentos em ordem decrescente do campo released para garantir a ordem determinística.

  • $rerank o estágio reordena os documentos para corresponder à query usando o modelo de reclassificação rerank-2.5.

  • $addFields estágio adiciona um campo chamado rerankScore aos documentos.

1db.embedded_movies.aggregate([
2 {
3 "$match": {
4 "plot": { "$exists": true, "$type": "string" }
5 }
6 },
7 {
8 "$sort": { "released": -1 }
9 },
10 {
11 "$rerank": {
12 "model": "rerank-2.5",
13 "query": {
14 "text": "a group of heroes band together to stop a powerful enemy and save the world"
15 },
16 "numDocsToRerank": 100,
17 "path": ["title", "plot"]
18 }
19 },
20 {
21 "$addFields": {
22 "rerankScore": { "$meta": "score" }
23 }
24 },
25 { "$limit": 10 },
26 {
27 "$project": {
28 "_id": 0,
29 "title": 1,
30 "plot": 1,
31 "rerankScore": 1
32 }
33 }
34])
[
{
plot: 'No treason, no surrender.',
title: 'Ti mene nosis',
rerankScore: 0.5986876487731934
},
{
plot: 'The life of the greatest karate master of a generation.',
title: 'The Real Miyagi',
rerankScore: 0.5986876487731934
},
{
plot: 'A shy genius is employed by his former university to design robot software.',
title: 'Eva',
rerankScore: 0.5986876487731934
},
{
plot: 'The owners of a failing security company start robbing houses to boost business.',
title: 'Armed Response',
rerankScore: 0.5986876487731934
},
{
plot: 'A live telecast of the beloved J. M. Barrie story.',
title: 'Peter Pan Live!',
rerankScore: 0.5986876487731934
},
{
plot: "A French police magistrate spends years trying to take down one of the country's most powerful drug rings.",
title: 'The Connection',
rerankScore: 0.5986876487731934
},
{
plot: 'A documentary that follows undercover activists trying to stave off a man-made mass extinction.',
title: 'Racing Extinction',
rerankScore: 0.5986876487731934
},
{
plot: 'An ex-hitman comes out of retirement to track down the gangsters that took everything from him.',
title: 'John Wick',
rerankScore: 0.5986876487731934
},
{
plot: 'A former hit-man for a drug cartel becomes a vigilante to pay for his sins and find redemption.',
title: 'Redeemer',
rerankScore: 0.5986876487731934
},
{
plot: 'Charles Ingvar Jènsson gathers three criminals to take vengeance upon the people who killed his uncle.',
title: 'The Master Plan',
rerankScore: 0.5986876487731934
}
]