Todos los productos
Search
Centro de documentos

DashVector:Campos schema-free

Última actualización: Sep 06, 2026

DashVector es schema-free por diseño. Cuando insert, update o upsert un documento, pase cualquier par de clave-valor en el parámetro fields. No se requiere definir el esquema previamente.

collection.insert(
    Doc(
        id='1',
        vector=np.random.rand(4),
        fields={
            'name': 'zhangsan',
            'weight': 70.0,
            'age': 30,
            'anykey1': 'anyvalue',
            'anykey2': 1,
            'anykey3': True,
            'anykey4': 3.1415926
            ... ...
        }
    )
)
Nota

Cada campo adicional consume recursos de memoria y disco. Incluya únicamente los campos que respondan a sus necesidades de filtrado o recuperación.

Tipos de datos compatibles

Los campos admiten cuatro tipos de datos de Python:

Tipo

Descripción

Restricciones

str

Valores de cadena

--

float

Números de punto flotante

--

int

Valores enteros

Solo con signo de 32 bits: de -2,147,483,648 a 2,147,483,647

bool

Valores booleanos

True o False

Importante

El tipo int de Python admite precisión arbitraria, pero DashVector solo acepta enteros con signo de 32 bits (de -2,147,483,648 a 2,147,483,647). Los valores fuera de este rango provocan errores de desbordamiento.

Filtrar por campos

Use pares de clave-valor de los campos en filter expressions para acotar los resultados de búsqueda:

ret = collection.query(
    vector=[0.1, 0.2, 0.3, 0.4],
    filter='(age > 18 and anykey2 = 1) or (name like "zhang%" and anykey3 = false)'
)
Nota

Una mayor cantidad de campos y expresiones de filtro más complejas incrementan el uso de CPU y la latencia de las consultas.

Cuándo predefinir un esquema de campos

Aunque DashVector es schema-free de forma predeterminada, predefinir un esquema de campos al creating a collection mejora el rendimiento de las consultas, reduce la sobrecarga de almacenamiento y habilita la validación de entradas.

ret = client.create(
    name='complex',
    dimension=4,
    fields_schema={'name': str, 'weight': float, 'age': int}
)

Ventajas de los campos predefinidos

Ventaja

Descripción

Filtrado más rápido

El Conditional filtering sobre campos predefinidos consume menos CPU y devuelve resultados con mayor rapidez que el filtrado sobre campos ad-hoc.

Menor sobrecarga de almacenamiento

Los campos predefinidos almacenan únicamente valores. Los campos ad-hoc guardan tanto claves como valores, lo que consume más memoria y espacio en disco.

Prevalidación de filtros

DashVector valida la sintaxis del filtro frente a los tipos de los campos predefinidos y devuelve un error si no coinciden. Sin un esquema, esta validación de tipos no está disponible.

Enfoque recomendado

Predefina los campos que aparecen en la mayoría de los documentos y que usa con frecuencia para filtrar. Para atributos específicos de un subconjunto de documentos, use campos ad-hoc durante la inserción.