Typesense Esquema
En Typesense, el esquema de una colección es la definición que describe cómo se estructuran los documentos que se almacenarán y buscarán dentro de esa colección.
Podemos verlo como el “contrato” que especifica qué campos existen, qué tipo de datos tienen y cómo deben indexarse para que las búsquedas y filtros funcionen de forma óptima.
¿Qué contiene un esquema?
Un esquema de colección en Typesense incluye:
- name: nombre único de la colección.
- fields: lista de campos que tendrá cada documento, con sus propiedades:
- name: nombre del campo (ejemplo: title, price, tags).
- type: tipo de dato (string, int32, float, bool, string[], etc.).
- facet: indica si el campo se podrá usar para filtros/facetas.
- optional: si el campo es obligatorio o no.
- index: si se debe indexar para búsquedas de texto.
Configuración de GAIA
{
"default_sorting_field": "",
"enable_nested_fields": true,
"fields": [
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "cat_3",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "description",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "discount_percentage",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "float"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "disenador",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "express_label",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "bool"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "sku",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.environment_product",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.cantidad",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.cantidad_plazas",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.reclinable",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.material_pata",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.numero_piezas",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.tapizado",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "created_at",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "int64"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "comportamiento_bajo_umbral",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "int64"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "color_principal",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "color_filter",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "object"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "color_filter.refinement",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "color_filter.color",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "color_filter.name",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "color_family",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "object"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "color_family.name",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "color_family.color",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "color_family.refinement",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.linea",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.numero_set",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.forma_producto",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.tipo_madera",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.tamano",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.tamano_tv",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.acabado_cubierta",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.material_base",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.rango",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.firmeza_asiento",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.comercializable",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "bool"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.numero_puertas",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.tipo_brazo",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.material_respaldo",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.capacidad",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.material_cubierta",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.color_marco",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.material_general",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.tipo_de_armado",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.tipo_producto",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.material_superior",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.material_asiento",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "visibility",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "categories_without_path",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string[]"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "categories.level0",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string[]"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "label_discount",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "extra_tags",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string[]"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "etiqueta_armado",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "costo_armado",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "yotpo_count_reviews",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "int64"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "visibility_search",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "int64"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "visibility_catalog",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "int64"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "categories.level1",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string[]"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "vercel",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "bool"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "type_id",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "tiempo_entrega_max_sin_stock",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "int64"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "tiempo_entrega_max",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "int64"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "store_display_inventory",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "object[]"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "store_display_inventory.takehome",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "int64[]"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "store_display_inventory.exhibition",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "int64[]"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "store_display_inventory.code",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string[]"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "stock_qty",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "int64"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "is_oferta_flash",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "bool"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "categoryIds",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string[]"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "best_seller",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "bool"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "average_rating_rounded",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "int64"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "average_rating",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "float"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "recommended_items",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string[]"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "is_buenfin",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "bool"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "is_express_delivery",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "bool"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "color",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "is_oferta_del_dia",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "bool"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "is_new",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "bool"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "is_available",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "bool"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "estilo",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "l2",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "categories",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "object"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "categories.level4",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string[]"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "categories.level2",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string[]"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "categories.level3",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string[]"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "discount_amount",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "float"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.color",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "master_scores.score_1",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "float"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "has_cashback",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "bool"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "extra_days_code",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "type",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "variant_code",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "is_40_off",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "bool"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "weighted_score",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "float"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "price.MXN.default_formated",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "price.MXN.default",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "float"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "largo",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "float"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "cat_nav",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "price.MXN.special_from_date",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.orientacion_brazo",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.material_principal",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "in_stock",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "int64"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.material_tapizado",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "price.MXN.special_to_date",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "master_scores.score_web",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "float"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "potencial",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "int64"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "ordered_qty",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "int64"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "objectID",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "num_ratings",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "int64"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "name",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "master_scores",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "object"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "price",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "object"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "linea",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "landing_pages",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string[]"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "is_enabled",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "bool"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "has_label_discount",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "bool"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "has_discount",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "bool"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "object"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "facetable_attributes.textura_tapizado",
"optional": true,
"sort": false,
"stem": false,
"store": true,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "yotpo_score",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "float"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "alto",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "float"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "ancho",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "float"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "extend_zone",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "int64"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "ranking",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "int64"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "qty",
"optional": true,
"sort": true,
"stem": false,
"store": true,
"type": "int64"
}
],
"name": "ares_prod_9feb.v2",
"symbols_to_index": [],
"token_separators": [
"/",
"-",
".",
"_",
":"
]
}