1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
function param(name, type, props = {}) {
let children;
if (Array.isArray(type)) {
children = Object.fromEntries(type.map((child) => [child.name, child]));
type = 'Parent';
}
return Object.assign({ name, type }, children && { children }, props);
}
// https://docs.vespa.ai/en/reference/query-api-reference.html
export default param('root', [
param('yql', 'String'),
// Native Execution Parameters
param('hits', 'Integer', { min: 0, default: 10 }),
param('offset', 'Integer', { min: 0, default: 0 }),
param('queryProfile', 'String', { default: 'default' }),
param('groupingSessionCache', 'Boolean', { default: true }),
param('searchChain', 'String', { default: 'default' }),
param('timeout', 'Float', { min: 0, default: 0.5 }),
param('noCache', 'Boolean', { default: false }),
// Query Model
param('model', [
param('defaultIndex', 'String', { default: 'default' }),
param('encoding', 'String', { default: 'utf-8' }),
param('filter', 'String'),
param('locale', 'String'),
param('language', 'String'),
param('queryString', 'String'),
param('restrict', 'String'),
param('searchPath', 'String'),
param('sources', 'String'),
param('type', 'String'),
]),
// Ranking
param('ranking', [
param('location', 'String'),
param('features', 'Parent', { children: 'String' }),
param('listFeatures', 'Boolean', { default: false }),
param('profile', 'String', { default: 'default' }),
param('properties', 'String', { children: 'String' }),
param('softtimeout', [
param('enable', 'Boolean', { default: true }),
param('factor', 'Float', { min: 0, max: 1, default: 0.7 }),
]),
param('sorting', 'String'),
param('freshness', 'String'),
param('queryCache', 'Boolean', { default: false }),
param('rerankCount', 'Integer', { min: 0 }),
param('matching', [
param('numThreadsPerSearch', 'Integer', { min: 0 }),
param('minHitsPerThread', 'Integer', { min: 0 }),
param('numSearchPartitions', 'Integer', { min: 0 }),
param('termwiseLimit', 'Float', { min: 0, max: 1 }),
param('postFilterThreshold', 'Float', { min: 0, max: 1 }),
param('approximateThreshold', 'Float', { min: 0, max: 1 }),
]),
param('matchPhase', [
param('attribute', 'String'),
param('maxHits', 'Integer', { min: 0 }),
param('ascending', 'Boolean'),
param('diversity', [
param('attribute', 'String'),
param('minGroups', 'Integer', { min: 0 }),
]),
]),
]),
// Grouping
param('collapsesize', 'Integer', { min: 1, default: 1 }),
param('collapsefield', 'String'),
param('collapse', [param('summary', 'String')]),
param('grouping', [
param('defaultMaxGroups', 'Integer', { min: -1, default: 10 }),
param('defaultMaxHits', 'Integer', { min: -1, default: 10 }),
param('globalMaxGroups', 'Integer', { min: -1, default: 10000 }),
param('defaultPrecisionFactor', 'Float', { min: 0, default: 2.0 }),
]),
// Presentation
param('presentation', [
param('bolding', 'Boolean', { default: true }),
param('format', 'String', { default: 'default' }),
param('template', 'String'),
param('summary', 'String'),
param('timing', 'Boolean', { default: false }),
]),
// Tracing
param('trace', [
param('level', 'Integer', { min: 1 }),
param('explainLevel', 'Integer', { min: 1 }),
param('profileDepth', 'Integer', { min: 1 }),
param('timestamps', 'Boolean', { default: false }),
param('query', 'Boolean', { default: true }),
]),
// Semantic Rules
param('rules', [
param('off', 'Boolean', { default: true }),
param('rulebase', 'String'),
]),
param('tracelevel', [param('rules', 'Integer', { min: 0 })]),
// Dispatch
param('dispatch', [param('topKProbability', 'Float', { min: 0, max: 1 })]),
// Other
param('recall', 'String'),
param('user', 'String'),
param('hitcountestimate', 'Boolean', { default: false }),
param('metrics', [param('ignore', 'Boolean', { default: false })]),
param('weakAnd', [param('replace', 'Boolean', { default: false })]),
param('wand', [param('hits', 'Integer', { default: 100 })]),
param('sorting', [param('degrading', 'Boolean', { default: true })]),
param('streaming', [
param('userid', 'Integer'),
param('groupname', 'String'),
param('selection', 'String'),
param('priority', 'String'),
param('maxbucketspervisitor', 'Integer'),
]),
]).children;
|