Menu Docs
Página inicial do Docs
/ /

Executar queries no Vector Search

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

$vectorSearch

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

Ao definir um estágio, você pode usar $vectorSearch o exact campo 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.

Cada documento retornado inclui a pontuação como metadados. Para retornar a pontuação de cada documento junto com o conjunto de resultados, use um $project estágio em seu pipeline de agregação e configure o score como um campo para projeto. No campo score, especifique uma expressão $meta com o valor vectorSearchScore. A sintaxe é a seguinte:

1db.<collection>.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])

Observação

Você pode usar vectorSearchScore como uma expressão score $meta somente após o estágio do pipeline $vectorSearch. Se você utilizar vectorSearchScore após qualquer outra query, o MongoDB registrará um aviso a partir do MongoDB v8.2.

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.

A opção filter $vectorSearch corresponde aos valores booleanos, data, objectId, valores numéricos, de string e UUID do BSON, incluindo arrays desses tipos.

Você deve indexar os campos nos quais deseja filtrar os dados como tipo de filtro em uma definição de índice do tipo vectorSearch. É útil filtrar os dados para restringir o escopo da pesquisa semântica e garantir que nem todos os vetores sejam considerados para comparação.

O MongoDB Vector Search suporta a opção $vectorSearch filter para os seguintes operadores MQL:

Tipo
Operador MQL

Igualdade

faixa

No conjunto

Existência

Lógica

  • 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 filtro, como pesquisa difusa, correspondência de frases, filtro 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 ao seu cluster.

  • Criar índices de pesquisa Vector Search MongoDB para a coleção. Para obter instruções, consulte o procedimento Criar um índice de pesquisa vetorial do MongoDB e copie as configurações dos exemplos básicos ou de filtro na linguagem desejada.

Observação

Se você usar mongosh, colar o queryVector do código de amostra no seu terminal pode levar algum tempo, dependendo da sua máquina.

Voltar

Referência de índice

Receber um selo de habilidade

Domine os "Fundamentos da pesquisa vetorial" gratuitamente!

Saiba mais

Nesta página