Search
Configures full-text search indexing for emails, calendars, contacts, files, and tracing.
This object can be configured from the WebUI under Settings › Search
Fields
Section titled “Fields”indexBatchSize
Section titled “indexBatchSize”Type:
UnsignedInt· default:100· min: 1Number of items to process in each batch during indexing operations
defaultLanguage
Section titled “defaultLanguage”Type:
Locale· default:"en-US"Default language to use when language detection is not possible
supportedLanguages
Section titled “supportedLanguages”Type:
Set<Locale>· default:{"en-US":true}List of languages to enable for full-text search
indexCalendar
Section titled “indexCalendar”Type:
Boolean· default:trueEnable full-text search indexing for calendar data
indexCalendarFields
Section titled “indexCalendarFields”Type:
Set<SearchCalendarField>· default:{"attendee":true,"description":true,"location":true,"owner":true,"title":true}List of calendar fields to index
indexContacts
Section titled “indexContacts”Type:
Boolean· default:trueEnable full-text search indexing for contacts data
indexContactFields
Section titled “indexContactFields”Type:
Set<SearchContactField>· default:{"address":true,"email":true,"kind":true,"member":true,"name":true,"nickname":true,"note":true,"onlineService":true,"organization":true,"phone":true}List of contact fields to index
indexEmail
Section titled “indexEmail”Type:
Boolean· default:trueEnable full-text search indexing for email content and metadata
indexEmailFields
Section titled “indexEmailFields”Type:
Set<SearchEmailField>· default:{"attachment":true,"bcc":true,"body":true,"cc":true,"from":true,"subject":true,"to":true}List of email fields to index
indexTelemetry
Section titled “indexTelemetry”Type:
Boolean· enterprise · default:trueEnable full-text search indexing for tracing data
maxConcurrentIndexTasks
Section titled “maxConcurrentIndexTasks”Type:
UnsignedInt· default:5· min: 1Maximum number of indexing tasks that run at the same time
indexFiles
Section titled “indexFiles”Type:
Boolean· default:trueEnable full-text search indexing for file storage content (file names are always searchable)
maxExtractDocumentSize
Section titled “maxExtractDocumentSize”Type:
Size· default:67108864· min: 1Maximum size in bytes of a document (file or email attachment) from which text is extracted for indexing
maxExtractTextSize
Section titled “maxExtractTextSize”Type:
Size· default:4194304· min: 1Maximum amount of text in bytes extracted from a single document for indexing
maxExtractDecompressedSize
Section titled “maxExtractDecompressedSize”Type:
Size· default:268435456· min: 1Maximum number of bytes decompressed while extracting text from a single document
maxExtractPartSize
Section titled “maxExtractPartSize”Type:
Size· default:67108864· min: 1Maximum decompressed size in bytes of a single part (XML part, EPUB chapter or PDF stream) inside a document
maxExtractParts
Section titled “maxExtractParts”Type:
UnsignedInt· default:10000· min: 1Maximum number of parts (XML parts, slides, sheets or chapters) read from a single document
maxExtractArchiveEntries
Section titled “maxExtractArchiveEntries”Type:
UnsignedInt· default:10000· min: 1Maximum number of ZIP entries accepted in an Office, OpenDocument or EPUB file
maxExtractPdfObjects
Section titled “maxExtractPdfObjects”Type:
UnsignedInt· default:1048576· min: 1Maximum number of objects in a PDF cross-reference table
maxExtractRtfDepth
Section titled “maxExtractRtfDepth”Type:
UnsignedInt· default:256· min: 1Maximum group nesting depth of an RTF document
JMAP API
Section titled “JMAP API”The Search singleton is available via the urn:stalwart:jmap capability.
x:Search/get
Section titled “x:Search/get”This is a standard Foo/get method as defined in RFC 8620, Section 5.1.
For singletons, the ids argument should be the literal singleton (or null to return the single instance).
This method requires the sysSearchGet permission.
curl -X POST https://mail.example.com/jmap/ \ -H 'Authorization: Bearer $TOKEN' \ -H 'Content-Type: application/json' \ -d '{ "methodCalls": [ [ "x:Search/get", { "ids": [ "singleton" ] }, "c1" ] ], "using": [ "urn:ietf:params:jmap:core", "urn:stalwart:jmap" ] }'x:Search/set
Section titled “x:Search/set”This is a standard Foo/set method as defined in RFC 8620, Section 5.3.
For singletons, only the update argument with id singleton is accepted; create and destroy arguments are rejected.
This method requires the sysSearchUpdate permission.
curl -X POST https://mail.example.com/jmap/ \ -H 'Authorization: Bearer $TOKEN' \ -H 'Content-Type: application/json' \ -d '{ "methodCalls": [ [ "x:Search/set", { "update": { "singleton": { "indexBatchSize": 100 } } }, "c1" ] ], "using": [ "urn:ietf:params:jmap:core", "urn:stalwart:jmap" ] }'stalwart-cli wraps the same JMAP calls. See the CLI reference for installation, authentication, and general usage.
stalwart-cli get SearchUpdate
Section titled “Update”stalwart-cli update Search --field indexBatchSize=100SearchCalendarField
Section titled “SearchCalendarField”| Value | Label |
|---|---|
title | Event Title |
description | Event Description |
location | Event Location |
owner | Event Owner |
attendee | Event Attendee |
SearchContactField
Section titled “SearchContactField”| Value | Label |
|---|---|
member | Group Member |
kind | Contact Kind |
name | Contact Name |
nickname | Contact Nickname |
organization | Contact Organization |
email | Contact Email |
phone | Contact Phone |
onlineService | Contact Online Service |
address | Contact Address |
note | Contact Note |
SearchEmailField
Section titled “SearchEmailField”| Value | Label |
|---|---|
from | From Address |
to | To Address |
cc | Cc Address |
bcc | Bcc Address |
subject | Subject |
body | Body Content |
attachment | Attachment Content |
headers | Email Headers |