vector tipo de campo e vectorSearch o operador estão disponíveis como recursos de visualização. O recurso e a documentação correspondente podem mudar a qualquer momento durante o período de Pré-visualização. Para saber mais, consulte Recursos de visualização.Definição
O vectorSearch operador executa uma pesquisa ANN ou ENN em incorporações vetoriais no campo especificado. Use esse operador para adicionar recursos de texto analisados, como pesquisa difusa, correspondência de frases, filtragem de localização, correspondência de padrões curingas e assim por diante, juntamente com a 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 que executam o MongoDB v6.0.11, v7.0.2, ou posterior e pesquisa ENN em clusters que executam o MongoDB v6.0.16, v7.0.10, v7.3.2, ou mais tarde. |
| Objeto | Opcional | Operador MongoDB Search para utilizar para pré-filtrar documentos com base em metadados ou critérios de pesquisa específicos. Para saber mais,consulte 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 flutuantes | Obrigatório | Array de números de Para saber mais sobre como gerar O tamanho da matriz deve corresponder ao número de dimensões vetoriais () Você deve incorporar sua query com o mesmo modelo que utilizou para incorporar os dados. Você pode executar query de suas incorporações com vetores de fidelidade total, desde que o subtipo de 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 pesquisar usando o operador vectorSearch. Você pode indexar os seguintes tipos de campos na definição de í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. Estes 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 de sua pesquisa semântica e garantir que nem todos os vetores sejam considerados para comparação. Você pode usar qualquer operador compatível do MongoDB Search no campo filter para consultar e filtrar os documentos.
Você deve indexar os campos nos quais deseja filtrar seus dados na definição de vector índice para o tipo.
pontuação
Você pode incluir a pontuação de cada documento nos resultados da pesquisa. Especifique a expressão $meta com o searchScore valor no estágio. Você também pode especificar $project o searchScoreDetails valor para a expressão scoreDetails $meta do campo para obter uma análise detalhada da pontuação.
Para saber mais, consulte Pontuação dos documentos nos resultados e Retornar os detalhes da pontuação.
vectorSearch Limitações do operador
O vectorSearch operador deve ser o operador de nível superior em suas queries. Portanto, você não pode usar o vectorSearch operador dentro dos seguintes operadores do MongoDB Search:
Você não pode utilizar o vectorSearch operador para campos de query indexados utilizando um índice do tipo vectorSearch.
Você não pode utilizar as seguintes opções com $search o vectorSearch operador:
rastreamento (obsoleto)
Você não pode executar queries com $search o vectorSearch operador utilizando o Testador de Pesquisa.
Exemplos
Os exemplos seguintes utilizam a sample_mflix.embedded_movies coleção a partir dos dados de amostra. Se você carregar os dados de amostra e criar o índice de amostra na coleção, poderá executar as seguintes queries de ANN e ENN na coleção depois de substituir os espaços reservados <connection-string> e <index-name> nas queries.