vector e o operador vectorSearch estão disponíveis como recursos de prévia. O recurso e a documentação correspondente podem mudar a qualquer momento durante a prévia. Saiba mais em Recursos da prévia.Definição
O operador vectorSearch executa uma pesquisa ANN ou ENN em incorporações vetoriais no campo especificado. Use esse operador para adicionar funcionalidades de texto analisado, como pesquisa difusa, correspondência de frases, filtro de localização, correspondência de padrões curingas e muito mais, à pesquisa semântica.
Sintaxe
vectorSearch tem a seguinte sintaxe:
{ "$search": { "index": "<index name>", // optional, defaults to "default" "vectorSearch": { "exact": true | false, "filter": {<operator-specification>}, "limit": <number-of-results>, "numCandidates": <number-of-candidates>, "path": "<field-to-search>", "queryVector": [<array-of-numbers>], "score": {<options>} } } }
Opções
vectorSearch usa os seguintes campos para construir uma query:
Campo | Tipo | necessidade | Descrição |
|---|---|---|---|
| Boolean | Opcional | Isso é necessário se Sinalizador que especifica se a pesquisa ENN ou ANN deve ser executada. O valor pode ser um dos seguintes:
Se omitido, o padrão é O MongoDB Vector Search suporta pesquisa ANN em clusters do Atlas executando o MongoDB6.0.11 v, v7.0.2 ou posterior e pesquisa ENN em clusters executando o MongoDB v.., v.., 6 0v..16 7010732ou posterior. Você também pode usar a Vector Search do MongoDB com sistemas autogerenciados ou locais do Atlas que você cria com o Atlas CLI. |
| Objeto | Opcional | O operador do MongoDB Search para pré-filtrar documentos com base em metadados ou critérios específicos de pesquisa. Saiba mais em Pré-filtro. |
| Int | Obrigatório | |
| Int | Opcional | Este campo é obrigatório se Número de vizinhos mais próximos a serem utilizados durante a pesquisa. O valor deve ser menor ou igual a ( Recomendamos especificar um número pelo menos 20 vezes maior que o número de documentos a serem retornados ( Esse padrão de solicitação excessiva é a maneira recomendada de equilibrar a latência e recall em suas pesquisas ANN, e recomendamos ajustar esse parâmetro com base no tamanho específico do seu conjunto de dados e nos requisitos de query. |
| String | Obrigatório | Campo do tipo vetor indexado para pesquisa. |
| Array de números inteiros ou de ponto flutuante | Obrigatório | Array de números de Saiba mais sobre como gerar vetores BSON O tamanho da array deve corresponder ao número de dimensões do vetor ( Você deve incorporar sua query com o mesmo modelo que utilizou para incorporar os dados. Você pode consultar seus embeddings com vetores de fidelidade total, desde que o subtipo do vetor seja o mesmo. Isso só é possível com vetores |
| Objeto | Opcional | Pontuação atribuída aos resultados correspondentes do termo de pesquisa. Use uma das opções seguintes para modificar a pontuação:
Para obter informações sobre como utilizar o |
Comportamento
Índice de pesquisa do MongoDB
Você deve indexar os campos para pesquisa usando o operador vectorSearch. Você pode indexar os seguintes tipos de campo na definição do índice do MongoDB Search:
Campo que contém incorporações vetoriais. Este é o campo que você especifica na opção de query
path.Campos para pré-filtrar os documentos. São os campos que você especifica na opção de query
filter.
Pré-filtro
Você pode pré-filtrar os documentos para restringir o escopo da sua pesquisa semântica e garantir que nem todos os vetores sejam considerados para comparação. Você pode usar qualquer operador do MongoDB Search aceito no campo filter para fazer query e filtrar os documentos.
Você deve criar um índice para os campos que deseja para o filtro dos seus dados na definição do índice para o tipo vector.
pontuação
Você pode incluir a pontuação de cada documento nos resultados da pesquisa. Especifique a expressão $meta com o valor searchScore no estágio $project. Você também pode especificar o valor searchScoreDetails para a expressão $meta do campo scoreDetails para obter uma análise detalhada da pontuação.
Para saber mais, consulte Pontuação dos documentos nos resultados e Retornar detalhes da pontuação.
vectorSearch Limitações do operador
O operador vectorSearch deve ser o operador de nível superior nas suas queries. Portanto, você não pode usar o operador vectorSearch dentro dos seguintes operadores do MongoDB Search:
Você não pode utilizar o operador vectorSearch para campos de query indexados utilizando um índice do tipo vectorSearch.
Você não pode usar as seguintes opções $search com o operador vectorSearch:
rastreamento (descontinuado)
Você não pode executar queries com $search o vectorSearch operador no MongoDB Search Playground.
Exemplos
Os exemplos a seguir usam a coleção sample_mflix.embedded_movies dos dados de amostra. Se você carregar os dados de amostra e criar o índice de amostra na coleção, você pode executar as seguintes ANN e ENN queries na coleção após trocar os espaços reservados <connection-string> e <index-name> nas queries.