Todos los productos
Search
Centro de documentos

OpenSearch:Esquema

Última actualización: Sep 07, 2026

El esquema define la estructura de datos de una aplicación de OpenSearch. Contiene dos objetos de nivel superior: tables, que describe cómo se organizan los datos, y indexes, que controla cómo se buscan y filtran dichos datos. Cada campo de una tabla debe registrarse en el esquema antes de poder buscarlo o utilizarlo como filtro.

Ejemplo

{
    "tables": {
        "main": {
            "primaryTable": true,
            "name": "main",
            "fields": {
                "id": {
                    "name": "id",
                    "type": "LITERAL",
                    "primaryKey": true
                },
                "title": {
                    "name": "title",
                    "type": "TEXT",
                    "primaryKey": false
                },
                "buy": {
                    "name": "buy",
                    "type": "INT",
                    "primaryKey": false
                },
                "cate_id": {
                    "name": "cate_id",
                    "type": "INT",
                    "primaryKey": false
                },
                "cate_name": {
                    "name": "cate_name",
                    "type": "LITERAL",
                    "primaryKey": false
                }
            }
        }
    },
    "indexes": {
        "searchFields": {
            "id": {
                "fields": [
                    "id"
                ]
            },
            "default": {
                "fields": [
                    "title"
                ],
                "analyzer": "chn_standard"
            },
            "cate_name": {
                "fields": [
                    "cate_name"
                ]
            }
        },
        "filterFields": [
            "id",
            "buy",
            "cate_id",
            "cate_name"
        ]
    }
}

Este ejemplo define una tabla (main) con cinco campos. El objeto indexes asigna tres de esos campos a índices de búsqueda y enumera cuatro campos como campos de filtro (atributo).

Estructura

Esquema

Campo

Tipo

Obligatorio

Descripción

tables

Object

Sí

Definiciones de tablas. Cada clave es un nombre de tabla; consulte Tabla para conocer la estructura de cada valor.

indexes

Object

Sí

Configuración de índices. Consulte Índice.

Tabla

Ejemplo

{
    "primaryTable": true,
    "name": "main",
    "fields": {
        "id": {
            "name": "id",
            "type": "LITERAL",
            "primaryKey": true
        },
        "title": {
            "name": "title",
            "type": "TEXT",
            "primaryKey": false
        }
    }
}

Estructura

Campo

Tipo

Obligatorio

Descripción

name

String

Sí

Nombre de la tabla.

primaryTable

Boolean

Sí

Indica si esta tabla es la tabla principal.

fields

Object

Sí

Definiciones de campos. Cada clave es un nombre de campo; consulte Campo para conocer la estructura de cada valor.

Campo

Ejemplo

{
    "name": "json_nested",
    "type": "NESTED",
    "primaryKey": false,
    "innerSchema": {
        "job": {
            "name": "job",
            "type": "TEXT",
            "primaryKey": false
        },
        "ssn": {
            "name": "ssn",
            "type": "LITERAL",
            "primaryKey": false
        }
    }
}

Estructura

Campo

Tipo

Obligatorio

Descripción

name

String

Sí

Nombre del campo.

type

String

Sí

Tipo de campo: LITERAL, TEXT, INT, NESTED o OBJECT. Para más detalles, consulte Esquema de aplicación.

primaryKey

Boolean

Sí

Indica si este campo es la clave principal.

joinWith

Array

No

Vincula este campo con tablas de datos externas vinculadas.

innerSchema

Object

No

Estructura del campo anidado. Es obligatorio cuando type es OBJECT o NESTED. Admite varios niveles de anidamiento.

Índice

Ejemplo

{
    "searchFields": {
        "default": {
            "fields": [
                "title"
            ],
            "analyzer": "chn_standard"
        },
        "id": {
            "fields": [
                "id"
            ]
        }
    },
    "filterFields": [
        "id"
    ]
}

Estructura

Campo

Tipo

Obligatorio

Descripción

searchFields

Object

Sí

Definiciones de índices de búsqueda de texto completo. Cada clave es un nombre de índice; consulte SearchField para conocer la estructura de cada valor.

filterFields

Array

Sí

Lista de campos de atributo.

SearchField

Ejemplo

{
    "fields": ["title"],
    "analyzer": "chn_standard"
}

Estructura

Campo

Tipo

Obligatorio

Descripción

fields

Array

Sí

Campos de la tabla incluidos en este índice de búsqueda.

analyzer

String

No

Analizador que se aplica. Para analizadores personalizados, consulte Custom analyzers. Para analizadores integrados, consulte Built-in analyzers más abajo y Built-in analyzers.

Analizadores integrados

Chino

Analizador

Descripción

chn_standard

Análisis general de chino. Úselo para la mayoría de los campos de búsqueda de texto completo en chino.

chn_single

Análisis por carácter chino individual. Úselo cuando cada carácter deba tratarse como un token independiente.

chn_ecommerce

Análisis de comercio electrónico en chino. Optimizado para nombres de productos y consultas de compras.

chn_film

Análisis de video y entretenimiento en chino. Optimizado para títulos de películas y contenido multimedia.

chn_scene_name

Análisis de nombres de personas en chino.

chn_scene_org

Análisis de nombres de organizaciones en chino.

chn_it_content

Análisis de contenido de TI para texto en chino.

Inglés

Analizador

Descripción

eng_standard

Análisis de inglés con reducción a raíces (stemming). Coincide con variantes de palabras (por ejemplo, "running" coincide con "run").

eng_nostem

Análisis de inglés sin reducción a raíces. Coincide únicamente con formas exactas de las palabras.

Independientes del idioma y de propósito especial

Analizador

Descripción

simple

Análisis simple. Divide el texto por espacios en blanco y signos de puntuación, y convierte los tokens a minúsculas.

keyword

Análisis de palabras clave. Trata todo el valor del campo como un único token. Úselo para campos de coincidencia exacta.

fuzzy

Análisis difuso. Genera variantes de tokens para admitir coincidencias aproximadas.

numeric

Análisis numérico.

geo

Análisis de geolocalización. Úselo para campos de coordenadas geográficas.

first_letter

Análisis simple de ortografía pinyin. Indexa la primera letra de cada sílaba pinyin.

full_pinyin

Análisis completo de ortografía pinyin. Indexa la transcripción pinyin completa.