Schema: ngram.stopwords, queryFilter und inMemory ergänzen
continuous-integration/drone/push Build is passing
continuous-integration/drone/push Build is passing
Der Config-Vertrag kannte nur sizes und normalize. Damit lehnte
`validate:schemas` jedes Projekt ab, das die bereits im Server vorhandenen
ngram-Optionen nutzt (additionalProperties: false), und die generierte
Schema-Referenz konnte sie nie zeigen.
Ergänzt in collection.schema.json und index.d.ts:
- stopwords: { presets?: string[], words?: string[] }
- queryFilter: { minMatchRatio?: 0..1 }
- inMemory: { enabled?, maxDocs?, maxMemoryMB? }
plus demo-api/collections/ngram-stopwords.yml als Validierungs-Fixture; ohne
Schema-Erweiterung schlägt validate:schemas dort mit "must NOT have additional
properties" fehl.
This commit is contained in:
1 parent
3bf8055539
commit
9e12a8e9c3
3 files changed
+96
No files matched your search
@@ -0,0 +1,32 @@
|
||||
name: ngram-stopwords
|
||||
uploadPath: ../media/ngram-stopwords
|
||||
|
||||
permissions: !include global/test-permissions.yml
|
||||
|
||||
fields:
|
||||
- name: title
|
||||
type: string
|
||||
meta:
|
||||
label:
|
||||
de: Titel
|
||||
en: Title
|
||||
widget: "text"
|
||||
|
||||
search:
|
||||
- name: fuzzy
|
||||
mode: ngram
|
||||
fields: [title]
|
||||
autoRegenerate: true
|
||||
ngram:
|
||||
sizes: [2, 3]
|
||||
normalize:
|
||||
use: [german-umlauts]
|
||||
stopwords:
|
||||
presets: [de, en]
|
||||
words: [zum, zur]
|
||||
queryFilter:
|
||||
minMatchRatio: 0.4
|
||||
inMemory:
|
||||
enabled: true
|
||||
maxDocs: 150000
|
||||
maxMemoryMB: 512
|
||||
Vendored
+18
@@ -81,9 +81,27 @@ declare global {
|
||||
eval?: string
|
||||
}
|
||||
|
||||
export interface NgramStopwordsConfig {
|
||||
presets?: string[]
|
||||
words?: string[]
|
||||
}
|
||||
|
||||
export interface NgramQueryFilterConfig {
|
||||
minMatchRatio?: number
|
||||
}
|
||||
|
||||
export interface NgramInMemoryConfig {
|
||||
enabled?: boolean
|
||||
maxDocs?: number
|
||||
maxMemoryMB?: number
|
||||
}
|
||||
|
||||
export interface NgramConfig {
|
||||
sizes?: number[]
|
||||
normalize?: NormalizeConfig
|
||||
stopwords?: NgramStopwordsConfig
|
||||
queryFilter?: NgramQueryFilterConfig
|
||||
inMemory?: NgramInMemoryConfig
|
||||
}
|
||||
|
||||
export interface RrfConfig {
|
||||
|
||||
@@ -338,6 +338,52 @@
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"stopwords": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"presets": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"words": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"queryFilter": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"minMatchRatio": {
|
||||
"type": "number",
|
||||
"minimum": 0,
|
||||
"maximum": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
"inMemory": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"maxDocs": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
},
|
||||
"maxMemoryMB": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
Reference in new issue
Block a user