searchFacetSchemaDefinition: {
    $schema: "http://json-schema.org/draft-07/schema#";
    additionalProperties: true;
    properties: {
        facets: {
            additionalProperties: true;
            properties: {
                scopes: {
                    additionalProperties: {
                        additionalProperties: true;
                        properties: { facet: { enum: readonly ["filter", "range"] } };
                        required: readonly ["facet"];
                        type: "object";
                    };
                    type: "object";
                };
            };
            type: "object";
        };
        fulltextIndex: {
            additionalProperties: true;
            properties: {
                scopes: {
                    additionalProperties: {
                        additionalProperties: true;
                        properties: { weight: { type: "number" } };
                        type: "object";
                    };
                    type: "object";
                };
                types: {
                    additionalProperties: {
                        additionalProperties: true;
                        properties: { searchable: { type: "boolean" } };
                        type: "object";
                    };
                    type: "object";
                };
            };
            type: "object";
        };
    };
    type: "object";
} = ...

Minimal JSON Schema (draft-07–compatible) for validating SearchFacetSchema documents

Type declaration

  • Readonly$schema: "http://json-schema.org/draft-07/schema#"
  • ReadonlyadditionalProperties: true
  • Readonlyproperties: {
        facets: {
            additionalProperties: true;
            properties: {
                scopes: {
                    additionalProperties: {
                        additionalProperties: true;
                        properties: { facet: { enum: readonly ["filter", "range"] } };
                        required: readonly ["facet"];
                        type: "object";
                    };
                    type: "object";
                };
            };
            type: "object";
        };
        fulltextIndex: {
            additionalProperties: true;
            properties: {
                scopes: {
                    additionalProperties: {
                        additionalProperties: true;
                        properties: { weight: { type: "number" } };
                        type: "object";
                    };
                    type: "object";
                };
                types: {
                    additionalProperties: {
                        additionalProperties: true;
                        properties: { searchable: { type: "boolean" } };
                        type: "object";
                    };
                    type: "object";
                };
            };
            type: "object";
        };
    }
  • Readonlytype: "object"