Todos os produtos
Search
Central de documentação

DashVector:Busca semântica com reconhecimento de palavras-chave

Última atualização: Jun 29, 2026

A busca semântica com reconhecimento de palavras-chave combina correspondência de termos e compreensão semântica em uma única consulta do DashVector. Ao armazenar vetores esparsos (para frequência de termos) e vetores densos (para significado semântico) na mesma coleção, você obtém um recall mais robusto sem precisar executar dois sistemas de busca separados.

Conceitos principais

Vetores esparsos representam palavras-chave e a frequência dos termos. Eles contêm majoritariamente valores zero e alguns valores não nulos, um para cada palavra-chave presente no documento. No DashVector, o vetor esparso {1:0.4, 10000:0.6, 222222:0.8} possui três palavras-chave (elementos 1, 10000 e 222222), cujos valores indicam seus respectivos pesos.

Vetores densos capturam o significado semântico do conteúdo. Um modelo de embedding converte o texto em um array de comprimento fixo composto por números de ponto flutuante, identificando relações conceituais que a simples correspondência de palavras-chave não detecta.

Vetores esparsos

Vetores densos

Representação

Palavras-chave e frequência de termos

Significado semântico

Estrutura

Predominância de zeros, poucos valores não nulos

Maioria de valores não nulos

Tecnologia base

Índices invertidos, TF-IDF, BM25

Modelos de embedding

Ponto forte

Correspondência exata de termos

Similaridade conceitual

Limitação típica

Não associa "chuva forte" a "chovendo canivetes"

Pode falhar ao relacionar "irrigação de arroz" com "arroz irrigado" se não treinado adequadamente

A busca semântica com reconhecimento de palavras-chave supera ambas as limitações simultaneamente. A pontuação final de cada resultado corresponde ao produto escalar entre os vetores da consulta e os vetores do documento — as pontuações densas e esparsas são somadas.

Quando utilizar a busca semântica com reconhecimento de palavras-chave

Utilize este recurso nas seguintes situações:

  • As consultas misturam linguagem natural com termos específicos, como nomes de produtos, códigos de erro ou IDs

  • Os usuários pesquisam expressões idiomáticas, sinônimos ou conceitos parafraseados

  • Seu corpus exige tanto precisão no recall de palavras-chave quanto compreensão contextual

Pré-requisitos

Antes de começar, verifique se você possui:

Execute a busca semântica com reconhecimento de palavras-chave

Os passos a seguir criam uma coleção, inserem um documento com ambos os tipos de vetor e executam uma consulta híbrida.

Importante

Somente coleções configuradas com metric='dotproduct' oferecem suporte a vetores esparsos.

Passo 1: Crie uma coleção

import dashvector

# Replace YOUR_API_KEY with your API key (see Manage API keys).
# Replace YOUR_CLUSTER_ENDPOINT with your cluster endpoint (see the cluster details page).
client = dashvector.Client(
    api_key='YOUR_API_KEY',
    endpoint='YOUR_CLUSTER_ENDPOINT'
)

# dimension=4 is used here for simplicity.
# Set this to match your actual embedding model's output dimension.
ret = client.create('hybrid_collection', dimension=4, metric='dotproduct')

collection = client.get('hybrid_collection')
assert collection

Passo 2: Insira um documento com vetor esparso

from dashvector import Doc

collection.insert(Doc(
    id='A',
    vector=[0.1, 0.2, 0.3, 0.4],
    sparse_vector={1: 0.3, 10: 0.4, 100: 0.3}
))

O campo sparse_vector mapeia os IDs das palavras-chave aos seus respectivos pesos. Utilize um codificador esparso como o DashText para gerá-los a partir do texto bruto — consulte Codificador de vetores esparsos.

Passo 3: Consulte com ambos os tipos de vetor

Forneça tanto um vector quanto um sparse_vector na mesma consulta. O DashVector calcula a pontuação de cada resultado somando os produtos escalares de ambos os tipos de vetor.

docs = collection.query(
    vector=[0.1, 0.1, 0.1, 0.1],
    sparse_vector={1: 0.3, 20: 0.7}
)

Os resultados são classificados pela pontuação combinada do produto escalar — valores mais altos indicam maior relevância.

Codificador de vetores esparsos

O DashText é o codificador de vetores esparsos recomendado para o DashVector. Ele converte texto bruto no formato sparse_vector demonstrado acima. Consulte o Guia de início rápido do DashText para obter instruções de configuração.

Próximos passos