1. O que acontece nas operações de Doc se o parâmetro Partition não for especificado?
Toda Collection possui uma partição padrão não removível, criada automaticamente. Operações de Doc sem partição especificada usam a padrão. Por exemplo, ao recuperar um Doc sem especificar uma partição, a busca ocorre apenas na partição padrão, e não nas demais.
2. Diferenças entre as operações Insert Doc, Update Doc e Insert or Update Doc
Insert Doc: Falha se o ID do Doc já existir. O sistema não sobrescreve o Doc existente.
Update Doc: Sobrescreve um Doc existente. Falha se o ID do Doc não existir.
Insert or Update Doc: Atualiza o Doc se o ID existir; caso contrário, insere um novo Doc.
3. Como limpar uma Collection?
Não é possível limpar uma Collection diretamente. Em vez disso, exclua a Collection e crie uma nova Collection.
4. Como usar o recurso assíncrono nas operações de Doc?
As operações Insert Doc, Update Doc, Insert or Update Doc, Retrieve Doc, Delete Doc e Get Doc aceitam execução assíncrona. Defina async_req=True:
# Asynchronously write 1,000 times. Dimension = 20000, batch size = 8.
batch_size = 8
loop = 1000
start = time.time()
async_results = [
collection.insert(
[(j + i * batch_size, np.random.rand(20000)) for j in range(batch_size)],
async_req=True
) for i in range(loop)
]
# Wait for all write operations to complete.
print([async_result.get() for async_result in async_results])
print(f"async insert {loop} times with batch-size = {batch_size}, cost = {time.time() - start}")
# output:
# async insert 1000 times with batch-size = 8, cost = 31.13356590270996
# For comparison, synchronous write (code omitted)
# sync insert 1000 times with batch-size = 8, cost = 408.63447427749634
Operações assíncronas podem acionar os limites descritos em Restrições e limites. Trate essas situações adequadamente.
5. Os IDs de Doc são únicos no nível da Collection ou da partição?
Os IDs de Doc são únicos no nível da partição. Partições diferentes na mesma Collection podem conter Docs com o mesmo ID.
6. Por que ocorre perda de precisão nos dados vetoriais inseridos?
O DashVector armazena vetores como ponto flutuante de precisão simples (FP32/float32). A faixa de precisão é:

Dados de entrada fora dessa faixa são arredondados para o valor FP32 mais próximo, o que causa perda de precisão.
7. É possível especificar várias partições ao recuperar um Doc?
Não. Cada chamada de Retrieve Doc aceita apenas uma partição. Para consultar várias partições, chame a operação múltiplas vezes.
8. O comando pip install dashvector está muito lento. Como acelerá-lo?
Downloads lentos geralmente resultam de alta latência até o índice de pacotes padrão. Use um espelho para acelerar a instalação.
Por exemplo, para usar o espelho do Alibaba Cloud:
Abra um terminal (Linux ou macOS) ou o Prompt de Comando/PowerShell (Windows).
-
Use o parâmetro
-iou--index-urlpara especificar o espelho.pip3 install dashvector -i https://mirrors.aliyun.com/pypi/simple/
9. Posso criar um cluster usando um SDK?
Não. A criação de clusters é permitida apenas no Management Console. Consulte Criar um cluster.
10. Existe limite para o número de Collections que posso criar em um cluster pago?
Sim. Um cluster pago suporta até 32 Collections. O limite de partições depende das especificações do cluster e independe da quantidade de Collections. Consulte Restrições e limites.
11. As condições de filtro aceitam busca textual aproximada ao recuperar um Doc?
Não. No AISearch, os filtros aceitam apenas correspondência de prefixo em texto. Consulte Recuperação filtrada.
12. O DashVector retorna o erro: "Query qps exceeds limit 0 for collection ××××"
Esse erro ocorre quando um collectionName incorreto é fornecido em uma solicitação HTTP de recuperação em um cluster gratuito ou quando o limite de QPS do cluster gratuito é excedido. Clusters pagos não possuem limites rígidos de QPS ou capacidade. Consulte Restrições e limites.
13. Ao usar um SDK para chamar o DashVector, recebo o erro: DashVectorSDK RPCHandler endpoint({××××}) is invalid and cannot contain protocol header
O endpoint fornecido ao cliente é inválido. Verifique se o parâmetro endpoint não contém {}.