diff --git a/demo-api/collections/ngram-stopwords.yml b/demo-api/collections/ngram-stopwords.yml new file mode 100644 index 0000000..bd5837a --- /dev/null +++ b/demo-api/collections/ngram-stopwords.yml @@ -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 diff --git a/index.d.ts b/index.d.ts index bce54cf..6592e82 100644 --- a/index.d.ts +++ b/index.d.ts @@ -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 { diff --git a/schemas/config/collection.schema.json b/schemas/config/collection.schema.json index c331e0f..dd4ec33 100644 --- a/schemas/config/collection.schema.json +++ b/schemas/config/collection.schema.json @@ -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 + } + } } } },