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 com wildcards 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 é MongoDB Vector Search supports ANN search on Atlas clusters running MongoDB v6.0.11, v7.0.2, or later and ENN search on clusters running MongoDB v6.0.16, v7.0.10, v7.3.2, or later. You can also use MongoDB Vector Search with self-managed or local Atlas deployments that you create with the Atlas CLI. |
| Objeto | Opcional | Operador do MongoDB Search a ser usado para pré-filtrar documentos com base em metadados ou critérios de pesquisa específicos. To learn more, see Pre-Filter. |
| 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 ( This overrequest pattern is the recommended way to trade off latency and :recall in your ANN searches, and we recommend tuning this parameter based on your specific dataset size and query requirements. |
| String | Obrigatório | Campo do tipo vetor indexado para pesquisa. |
| Array de números inteiros ou de ponto flutuante | Obrigatório | Array of numbers of To learn more about generating 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 de sua pesquisa semântica. Use qualquer operador compatível do MongoDB Search no campo filter para consultar e filtrar os documentos.
Importante
As queries filtradas são normalmente mais lentas do que uma query não filtrada equivalente.
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
You can include the score of each document in your search results. Specify the $meta expression with the searchScore value in the $project stage. You can also specify the searchScoreDetails value for the scoreDetails field $meta expression for a detailed breakdown of the score.
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:
You can't use the vectorSearch operator to query fields indexed using a vectorSearch type index.
Você não pode usar as seguintes opções $search com o operador vectorSearch:
Você não pode executar $search queries com o operador vectorSearch no MongoDB Search Playground.
Exemplos
The following examples use the sample_mflix.embedded_movies collection from the sample data. If you load the sample data and create the sample index on the collection, you can run the following ANN and ENN queries against the collection after replacing the <connection-string> and <index-name> placeholders in the queries.