Tipos de dados com suporte (Azure AI Search)
Este artigo descreve os tipos de dados compatíveis com o Azure AI Search. Os campos e os valores usados em expressões de filtro são digitados de acordo com oEDM (Modelo de Dados de Entidade)
Nota
Se você estiver usando indexadores, consulte Mapa de tipos de dados para indexadores no Azure AI Search para obter mais informações sobre como os indexadores mapeiam tipos de dados específicos da fonte para tipos de dados EDM em um índice de pesquisa.
Tipos de dados EDM para campos de vetor
Um tipo de de campo de vetor deve ser válido para a saída do modelo de inserção. Por exemplo, se você usar text-embedding-ada-002, o formato de saída será Float32
ou Collection(Edm.Single)
. Nesse cenário, você não pode atribuir um tipo de dados Int8
porque a conversão de float
para int
primitivas é proibida. No entanto, você pode converter de Float32
para Float16
ou (Collection(Edm.Half))
.
Os campos de vetor são uma matriz de inserções. No EDM, uma matriz é uma coleção.
Tipo de dado | Tipo de vetor | Descrição | Uso recomendado |
---|---|---|---|
Collection(Edm.Byte) |
Binário | Binário sem sinal de 1 bit. Disponível em Criar ou Atualizar Índice (2024-07-01). | Dá suporte à integração com modelos que emitem inserções binárias, como modelos de inserção binária v3 do Cohere. ou lógica de quantização personalizada que emite uma saída binária sem sinal de 1 bit. Para obter campos do tipo Collection(Edm.Byte) , consulte Indexar dados binários para obter ajuda com a especificação da definição de campo e algoritmos de pesquisa de vetor para dados binários. |
Collection(Edm.Single) |
Float32 |
Ponto flutuante de 32 bits. Disponível em Criar ou Atualizar Índice (2024-07-01). Esse tipo de dados também tem suporte em versões de versão prévia mais recentes e na versão estável 2023-11-01 . |
Tipo de dados padrão nas ferramentas da Microsoft que criam campos de vetor em seu nome. Atinge um equilíbrio entre precisão e eficiência. A maioria dos modelos de inserção emite vetores como Float32 . |
Collection(Edm.Half) |
Float16 |
Ponto flutuante de 16 bits com precisão e intervalo inferiores. Disponível em Criar ou Atualizar Índice (2024-07-01). | Útil para cenários em que a memória e a eficiência computacional são críticas e onde sacrificar alguma precisão é aceitável. Geralmente leva a tempos de consulta mais rápidos e volume de memória reduzido em comparação com Float32 , embora com precisão ligeiramente reduzida. Você pode atribuir um tipo de Float16 para indexar inserções Float32 como Float16 . Você também pode usar Float16 para inserir modelos ou processos de quantização personalizados que emitem Float16 nativamente. |
Collection(Edm.Int16) |
Int16 |
Inteiro com sinal de 16 bits. Disponível em Criar ou Atualizar Índice (2024-07-01). | Oferece volume de memória reduzido em comparação com Float32 e suporte para métodos de quantização de maior precisão, mantendo a precisão suficiente para muitos aplicativos. Adequado para casos em que a eficiência de memória é importante. Requer que você tenha uma quantização personalizada que produz vetores como Int16 . |
Collection(Edm.SByte) |
Int8 |
Inteiro com sinal de 8 bits. Disponível em Criar ou Atualizar Índice (2024-07-01). | Fornece ganhos significativos de memória e eficiência computacional em comparação com Float32 ou Float16 . No entanto, provavelmente requer técnicas complementares (como quantização e sobrecarga) para compensar a redução da precisão e do recall adequadamente. Requer que você tenha uma quantização personalizada que produz vetores como Int8 . |
Tipos de dados do EDM para campos não vetores
Todos os tipos acima são anuláveis, exceto coleções de tipos primitivos e complexos, por exemplo, Collection(Edm.String)
. Campos que permitem valor nulo podem ser definidos explicitamente como nulos. Eles são automaticamente definidos como nulos quando omitidos de um documento carregado em um índice do Azure AI Search. Os campos de coleção são automaticamente definidos como vazios ([]
no JSON) quando são omitidos de um documento. Além disso, não é possível armazenar um valor nulo em um campo de coleção.
Ao contrário de coleções complexas, não há limite superior especificamente no número de itens em uma coleção de tipos primitivos, mas o limite superior de de 16 MB no tamanho da carga se aplica a todas as partes dos documentos, incluindo coleções.
Tipo de dados geoespaciais usado em expressões de filtro
No Azure AI Search, a pesquisa geoespacial é expressa como um filtro.
Edm.GeographyPolygon é um polígono que representa uma região geográfica no globo. Embora esse tipo não possa ser usado em campos de documento, ele pode ser usado como um argumento para a função geo.intersects
. O formulário literal para URLs no OData baseia-se no WKT (texto conhecido) e nos padrões simples de acesso a recursos do OGC. Um literal de polígono é construído como geography'POLYGON((lon lat, lon lat, ...)'.
Importante
Os pontos em um polígono devem estar em ordem anti-horário. Os pontos em um polígono são interpretados na ordem anti-horário, em relação ao interior do polígono. Por exemplo, um polígono fechado de 4 pontos ao redor de Londres seria -0,3°W 51,6°N [canto superior esquerdo] , -0,3°W 51,4°N [inferior esquerdo], 0,1°E 51,4°N [inferior direito], 0,1°E 51,6°N [canto superior direito], -0,3°W 51,6°N [ponto de partida].
Consulte também
- criar de índice
- adicionar, atualizar ou excluir de documento
- visão geral do indexador
- Criando indexadores
- galeria de fontes de dados do