Tous les produits
Search
Centre de documentation

OpenSearch:Schéma

Dernière mise à jour :Aug 21, 2026

Le schéma définit la structure des données d'une application OpenSearch. Il comprend deux objets de premier niveau : tables, qui décrivent l'organisation de vos données, et indexes, qui régissent la recherche et le filtrage de ces données. Chaque champ d'une table doit être déclaré dans le schéma avant de pouvoir servir à la recherche ou au filtrage.

Exemple

{
    "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"
        ]
    }
}

Cet exemple définit une table (main) comportant cinq champs. L'objet indexes associe trois de ces champs à des index de recherche et liste quatre champs comme champs de filtre (attributs).

Structure

Schéma

Champ Type Obligatoire Description
tables Objet Oui Définitions des tables. Chaque clé correspond au nom d'une table ; consultez la section Table pour connaître la structure de chaque valeur.
indexes Objet Oui Configuration des index. Consultez la section Index.

Table

Exemple

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

Structure

Champ Type Obligatoire Description
name Chaîne Oui Nom de la table.
primaryTable Booléen Oui Indique si cette table est la table principale.
fields Objet Oui Définitions des champs. Chaque clé correspond au nom d'un champ ; consultez la section Champ pour connaître la structure de chaque valeur.

Champ

Exemple

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

Structure

Champ Type Obligatoire Description
name Chaîne Oui Nom du champ.
type Chaîne Oui Type du champ : LITERAL, TEXT, INT, NESTED ou OBJECT. Pour plus de détails, consultez la page Schéma d'application.
primaryKey Booléen Oui Indique si ce champ est la clé primaire.
joinWith Tableau Non Associe ce champ à des tables de données externes liées.
innerSchema Objet Non Structure des champs imbriqués. Obligatoire lorsque le type est défini sur OBJECT ou NESTED. Prend en charge plusieurs niveaux d'imbrication.

Index

Exemple

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

Structure

Champ Type Obligatoire Description
searchFields Objet Oui Définitions des index de recherche en texte intégral. Chaque clé correspond au nom d'un index ; consultez la section SearchField pour connaître la structure de chaque valeur.
filterFields Tableau Oui Liste des champs d'attribut.

SearchField

Exemple

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

Structure

Champ Type Obligatoire Description
fields Tableau Oui Champs de la table inclus dans cet index de recherche.
analyzer Chaîne Non Analyseur à appliquer. Pour les analyseurs personnalisés, consultez la section Analyseurs personnalisés. Pour les analyseurs intégrés, reportez-vous aux sections Analyseurs intégrés ci-dessous et Analyseurs intégrés.

Analyseurs intégrés

Chinois

Analyseur Description
chn_standard Analyse chinoise générale. À utiliser pour la plupart des champs de recherche en texte intégral en chinois.
chn_single Analyse par caractère chinois unique. À utiliser lorsque chaque caractère est traité comme un jeton indépendant.
chn_ecommerce Analyse chinoise pour le commerce électronique. Optimisée pour les noms de produits et les requêtes d'achat.
chn_film Analyse chinoise pour la vidéo et le divertissement. Optimisée pour les titres de films et les contenus multimédias.
chn_scene_name Analyse des noms personnels chinois.
chn_scene_org Analyse des noms d'organisations chinoises.
chn_it_content Analyse de contenu informatique pour les textes en chinois.

Anglais

Analyseur Description
eng_standard Analyse anglaise avec racinisation (stemming). Fait correspondre les variantes de mots (par exemple, « running » correspond à « run »).
eng_nostem Analyse anglaise sans racinisation. Fait correspondre uniquement les formes exactes des mots.

Indépendants de la langue et à usage spécial

Analyseur Description
simple Analyse simple. Sépare les jetons par les espaces et la ponctuation, et les convertit en minuscules.
keyword Analyse par mot-clé. Traite la valeur entière du champ comme un seul jeton. À utiliser pour les champs nécessitant une correspondance exacte.
fuzzy Analyse floue. Génère des variantes de jetons pour prendre en charge la correspondance approximative.
numeric Analyse numérique.
geo Analyse géolocalisée. À utiliser pour les champs de coordonnées géographiques.
first_letter Analyse simple par première lettre pinyin. Indexe la première lettre de chaque syllabe pinyin.
full_pinyin Analyse complète par transcription pinyin. Indexe la transcription pinyin intégrale.