export default function schema()

in src/main/js/components/editor/query-schema.js [1:180]


export default function schema() {
    return {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
            "yql": {type: "string", "minLength": 1},
            "hits": {type: "integer", minimum: 0},
            "offset": {type: "integer", minimum: 0},
            "queryProfile": {type: "string", minLength: 1},
            "groupingSessionCache": {type: "boolean"},
            "searchChain": {type: "string", minLength: 1},
            "timeout": {type: "string", minLength: 1},
            "model": {
                type: 'object',
                properties: {
                    "defaultIndex": {type: 'string'},
                    "encoding": {type: 'string'},
                    "filter": {type: 'string'},
                    "locale": {type: 'string'},
                    "language": {type: 'string'},
                    "queryString": {type: 'string'},
                    "restrict": {type: 'string'},
                    "searchPath": {type: 'string'},
                    "sources": {type: 'string'},
                    "type": {type: 'string'},
                },
            },
            "ranking": {
                type: ['object', 'string'],
                properties: {
                    "location": {type: 'string'},
                    "features": {
                        type: 'object',
                        properties: {},
                        additionalProperties: true
                    },
                    "listFeatures": {type: 'boolean'},
                    "profile": {type: 'string'},
                    "properties": {
                        type: 'object',
                        properties: {},
                        additionalProperties: true
                    },
                    "softtimeout": {
                        type: 'object',
                        properties: {
                            "enable": {type: 'boolean'},
                            "factor": {type: 'number', minimum: 0, maximum: 1},
                        },
                    },
                },
                "sorting": {type: 'string'},
                "freshness": {type: 'string'},
                "queryCache": {type: 'boolean'},
                "rerankCount": {type: 'integer', minimum: 0},
                "matching": {
                    type: 'object',
                    properties: {
                        "numThreadsPerSearch": {type: 'integer', minimum: 0},
                        "minHitsPerThread": {type: 'integer', minimum: 0},
                        "numSearchPartitions": {type: 'integer', minimum: 0},
                        "termwiseLimit": {type: 'number', minimum: 0, maximum: 1},
                        "postFilterThreshold": {type: 'number', minimum: 0, maximum: 1},
                        "approximateThreshold": {type: 'number', minimum: 0, maximum: 1},
                    },
                },
                "matchPhase": {
                    type: 'object',
                    properties: {
                        "attribute": {type: 'string'},
                        "maxHits": {type: 'integer'},
                        "ascending": {type: 'boolean'},
                        "diversity": {
                            type: 'object',
                            properties: {
                                "attribute": {type: 'string'},
                                "minGroups": {type: 'integer'},
                            }
                        }
                    }
                }
            },
            "collapsesize": {type: 'integer', minimum: 1},
            "collapsefield": {type: 'string'},
            "collapse": {
                type: 'object',
                properties: {
                    "summary": {type: 'string'},
                },
            },
            "grouping": {
                type: 'object',
                properties: {
                    "defaultMaxGroups": {type: 'integer', minimum: -1},
                    "defaultMaxHits": {type: 'integer', minimum: -1},
                    "globalMaxGroups": {type: 'integer', minimum: -1},
                    "defaultPrecisionFactor": {type: 'number', minimum: 0},
                },
            },
            "presentation": {
                type: 'object',
                properties: {
                    "bolding": {type: 'boolean'},
                    "format": {type: 'string'},
                    "template": {type: 'string'},
                    "summary": {type: 'string'},
                    "timing": {type: 'boolean'},
                },
            },
            "trace": {
                type: 'object',
                properties: {
                    "level": {type: 'integer', minimum: 1},
                    "explainLevel": {type: 'integer', minimum: 1},
                    "profileDepth": {type: 'integer', minimum: 1},
                    "timestamps": {type: 'boolean'},
                    "query": {type: 'boolean'},
                },
            },
            "rules": {
                type: 'object',
                properties: {
                    "off": {type: 'boolean'},
                    "rulebase": {type: 'string'},
                },
            },
            "tracelevel": {type: 'integer', minimum: 0},
            "dispatch": {
                type: 'object',
                properties: {
                    "topKProbability": {type: 'number', minimum: 0, maximum: 1},
                },
            },
            "recall": {type: 'string'},
            "user": {type: 'string'},
            "hitcountestimate": {type: 'boolean'},
            "metrics": {
                type: 'object',
                properties: {
                    "ignore": {type: 'boolean'},
                },
            },
            "weakAnd": {
                type: 'object',
                properties: {
                    "replace": {type: 'boolean'},
                },
            },
            "wand": {
                type: 'object',
                properties: {
                    "hits": {type: 'integer'},
                },
            },
            "sorting": {
                type: 'object',
                properties: {
                    "degrading": {type: 'boolean'},
                },
            },
            "streaming": {
                type: 'object',
                properties: {
                    "userid": {type: 'integer'},
                    "groupname": {type: 'string'},
                    "selection": {type: 'string'},
                    "priority": {type: 'string'},
                    "maxbucketspervisitor": {type: 'integer'},
                },
            },

            // extra
            "summary": {type: 'string'}
        },
        "required": [
            "yql",
        ],
        "additionalProperties": true
    }
}