Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Menu Docs
Página inicial do Docs
/ /

Executar queries no Vector Search

Uma query do MongoDB Vector Search tem a forma de um pipeline de agregação que utiliza $vectorSearch como o primeiro estágio. Esta página explica a sintaxe, as opções e o comportamento do estágio $vectorSearch.

$vectorSearch

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

Ao definir um estágio$vectorSearch, você pode usar o campo exact para especificar se deseja executar uma pesquisa ANN ou ENN.

$vectorSearch deve ser o primeiro estágio de qualquer pipeline onde aparece.

$vectorSearch não pode ser usado na definição de exibição e nos seguintes estágios de pipeline:

  • $lookup sub-pipeline [1]

  • $facet estágio do pipeline

[1] Você pode passar os resultados de $vectorSearch para este estágio.

Para saber mais sobre esses tipos de campo do MongoDB Vector Search, consulte Como indexar campos para o Vector Search.

O MongoDB Vector Search atribui uma pontuação, em um intervalo fixo de 0 a 1 (onde 0 indica baixa similaridade e 1 indica alta similaridade), a cada documento retornado.

Observação

A pré-filtragem de seus dados não afeta a pontuação que o MongoDB Vector Search retorna usando vectorSearchScore para $vectorSearch consultas.

Importante

As queries filtradas são normalmente mais lentas do que uma query não filtrada equivalente.

  • O MongoDB Vector Search suporta a forma abreviada de $eq. Na forma abreviada, você não precisa especificar $eq na query.

    Por exemplo, considere o seguinte filtro com $eq:

    "filter": { "_id": { "$eq": ObjectId("5a9427648b0beebeb69537a5") }

    Isso equivale ao seguinte filtro, que usa a forma abreviada de $eq:

    "filter": { "_id": ObjectId("5a9427648b0beebeb69537a5") }
  • Você pode usar o $and operador MQL para especificar uma array de filtros em uma única query.

    Por exemplo, considere o seguinte pré-filtro para documentos com um campo genres igual a Action e um campo year com o valor 1999, 2000 ou 2001:

    "filter": {
    "$and": [
    { "genres": "Action" },
    { "year": { "$in": [ 1999, 2000, 2001 ] } }
    ]
    }
  • Para funcionalidades avançadas de filtragem, como pesquisa difusa, correspondência de frases, filtragem de localização e outros textos analisados, use o operador vectorSearch em um estágio $search.

Antes de executar estes exemplos, realize as seguintes ações:

  • Adicione o conjunto de dados de amostra usado na query ao seu cluster.

  • Criar índices de Vector Search MongoDB para a coleção. Para obter instruções, consulte o procedimento Criar um índice de Vector Search do MongoDB e copie as configurações dos exemplos de ANN e ENN na linguagem desejada.

Observação

Se você usar, colar mongosh o queryVector diretamente no terminal pode demorar um pouco, dependendo do seu computador. Recomendamos salvar as incorporações vetoriais em um arquivo e carregá-las no mongosh usando o comando load().

Voltar

Referência de índice

Receber um selo de habilidade

Domine os "Fundamentos da pesquisa vetorial" gratuitamente!

Saiba mais

Nesta página