• Home
  • Download
  • Contribute
  • Support
  • Cyrus SASL

Cyrus IMAP

Cyrus IMAP

Cyrus IMAP

  • Download
    • Get Cyrus
      • Distribution Package
        • CentOS
        • Debian
        • Fedora
        • openSUSE
        • Red Hat Enterprise Linux
        • Ubuntu
      • Build and Install Yourself
        • Use a release packaged tarball
        • Use the source from Git
      • External Tools
      • Licensing
    • Release Notes
      • Stable Version
      • Development Version
      • Supported Product Series
        • Series 3.8
        • Series 3.6
        • Series 3.4
        • Series 3.2
        • Series 3.0
        • Series 2.5
      • Development snapshots
        • Cyrus IMAP 3.7 Tags
        • Cyrus IMAP 3.5 Tags
        • Cyrus IMAP 3.3 Tags
        • Cyrus IMAP 3.1 Tags
      • Older Versions
        • Series 1
        • Series 2: 2.0 - 2.4
    • Notes for Packagers
      • Binary naming
      • Sample configuration files
      • Predefined configurations
        • The configuration file for master: cyrus.conf
        • The configuration file for the various programs: imapd.conf
      • Services in /etc/services
  • Quickstart Guide
    • Introduction to Cyrus IMAP
      • What is IMAP?
    • Quick install
      • 1. Install Cyrus package(s)
      • 2. Setup the cyrus:mail user and group
      • 3. Setting up authentication with SASL
      • 4. Setup mail delivery from your MTA
      • 5. Protocol ports
      • 6. Configuring Cyrus
      • 7. Launch Cyrus
  • Overview
    • Features
      • Security and Authentication
        • Kerberos Authentication
        • LDAP Authentication
        • SQL Authentication
        • Access Control
        • Sealed System Design
      • Mailbox Management
        • Automatic Creation of Mailboxes
        • Mailbox Namespaces
        • Virtual Domains
        • Mailbox Annotations (METADATA)
        • Mailbox Distribution
      • Message Management
        • Delayed Delete
        • Delayed Expunge
        • Message Annotations (METADATA)
        • Duplicate Message Delivery Suppression
        • Shared Seen State
        • Server Side Filtering (Sieve)
        • Event Notifications
      • Calendar and Contact (DAV) Collection Management
        • CalDAV Collections
        • DAV Components
        • DAV Collection Management
        • CardDAV Support
      • Storage
        • Mail Spool Partitions
        • Mailbox Metadata Partitions
        • Archiving
        • Quota
        • Single-Instance Store
      • Load Management
        • Cyrus IMAP Murder (Server Aggregation)
    • Concepts
      • Access Control Lists
        • Working with ACLs
        • Sample ACL
        • Access Rights
        • Access Control Defaults
        • Access Control Identifier (ACI)
        • Negative Rights
        • Calculating a Users' Rights
      • Login Authentication
        • Anonymous Login
        • Plaintext Authentication
        • Kerberos Logins
        • Shared Secrets Logins
      • Quotas
        • Working with Quotas
        • Monitor and Repair
        • Supported Quota Types
        • Quota Roots
        • Controlling Quota Behavior
        • Mail Delivery Behavior
        • Quota Warnings Upon Select When User Has d Rights
        • Quotas and Partitions
      • New Mail Notification
      • Partitions
        • Specifying Partitions with "create"
        • Changing Partitions with "rename"
      • News
      • POP3 Server
      • The syslog facility
      • Mail Directory Recovery
        • Reconstructing Mailbox Directories
        • Reconstructing the Mailboxes File
        • Reconstructing Quota Roots
        • Removing Quota Roots
        • Subscriptions
      • Configuration Directory
        • Log Directory
        • Proc Directory
      • Message Delivery
        • Local Mail Transfer Protocol (lmtp)
        • Single Instance Store
        • Duplicate Delivery Suppression
      • Sieve, a Mail Filtering Language
      • Cyrus Murder, the IMAP Aggregator
  • Setup
    • Compiling
      • Setting up dependencies
        • Required Build Dependencies
        • Build dependencies for additional functionality
      • Compile Cyrus
        • Default build: mail only
        • Optional dependencies
        • Compile
        • Check
    • Installing Cyrus
      • Install Cyrus
      • Optional Components
        • HTTP modules
        • Virus Scanner
      • Setting up syslog
      • Create Cyrus environment
        • Set up the cyrus:mail user and group
        • Authentication with SASL
        • Mail delivery from your MTA
        • Protocol ports
        • Cyrus config files
        • Optional: Setting up TLS certificates
        • Prepare ephemeral (run-time) storage directories
      • Launch Cyrus
      • Send a test email
      • Checking CardDAV and CalDAV
      • Troubleshooting
    • Upgrading to 3.8
      • 1. Preparation
        • Versions to upgrade from
        • Installation from tarball
        • Storage changes
        • JMAP/CalDAV changes
        • Sieve changes
        • How are you planning on upgrading?
        • Do What As Who?
      • 2. Install new 3.8 Cyrus
      • 3. Shut down existing Cyrus
      • 4. Backup and Copy existing data
      • 5. Copy config files and update
      • 6. Upgrade specific items
      • 7. Start new 3.8 Cyrus and verify
      • 8. Reconstruct databases and cache
      • 9. Do you want any new features?
      • 10. Upgrade complete
      • Special note for Murder configurations
    • Configuration Guide
      • Deployment Scenarios
        • Single Server Deployments
        • Multi Server Deployments
      • Cyrus Murder: Server aggregation
        • The Discrete Murder
        • The Unified Murder
        • The Shared Murder
      • Cyrus Replication
      • Hosted Environments
      • Databases
        • Overview
        • File list
        • Storage types
      • Mailbox Creation Distribution
        • Selection Mode
        • Special cases
        • Partitions Exclusion
        • Partitions Usage Data Reset
        • Mailbox Creation Distribution Through murder frontend
        • Backends Exclusion
        • Backends Usage Data Reset
      • Known Protocol Limitations
        • POP3 and Mailbox Locking
        • Cyrus IMAP POP3 Implementation
      • Authentication and Authorization
        • Client Authentication
        • Users and Mailboxes
      • Performance Recommendations
        • Databases on Temporary Filesystems
        • Certificates
      • Storage Considerations
        • General Notes on Storage
        • Redundancy
        • Availability
        • Performance
        • Scalability
        • Capacity
        • Cost
      • Supported Platforms and System Requirements
        • Building Cyrus IMAP
        • Required Software Components
        • Recommended Software Components
        • Recommended Software Components Enabled by Default
  • Operations
    • Man pages
      • (5) Configuration Files
        • cyrus.conf
        • imapd.conf
        • krb.equiv
      • (8) System Commands
        • arbitron
        • backupd
        • chk_cyrus
        • ctl_backups
        • ctl_conversationsdb
        • ctl_cyrusdb
        • ctl_deliver
        • ctl_mboxlist
        • ctl_zoneinfo
        • cvt_cyrusdb
        • cvt_xlist_specialuse
        • cyr_backup
        • cyr_buildinfo
        • cyr_dbtool
        • cyr_deny
        • cyr_df
        • cyr_expire
        • cyr_info
        • cyr_ls
        • cyr_synclog
        • cyr_userseen
        • cyr_virusscan
        • cyradm
        • cyrdump
        • deliver
        • fetchnews
        • fud
        • httpd
        • idled
        • imapd
        • ipurge
        • jmap_expire
        • lmtpd
        • lmtpproxyd
        • masssievec
        • master
        • mbexamine
        • mbpath
        • mbtool
        • mkimap
        • mknewsgroups
        • mupdate
        • nntpd
        • notifyd
        • pop3d
        • pop3proxyd
        • promstatsd
        • proxyd
        • ptdump
        • ptexpire
        • ptloader
        • quota
        • reconstruct
        • rehash
        • relocate_by_id
        • restore
        • sievec
        • sieved
        • smmapd
        • squatter
        • sync_client
        • sync_reset
        • sync_server
        • timsieved
        • tls_prune
        • translatesieve
        • unexpunge
      • (1) User Commands
        • arbitronsort.pl
        • dav_reconstruct
        • httptest
        • imtest
        • installsieve
        • lmtptest
        • mupdatetest
        • nntptest
        • pop3test
        • sieveshell
        • sivtest
        • smtptest
        • synctest
    • Administrator Guide
      • Architecture
        • System Architecture
      • Management
        • File & Directory Locations
        • Ports and Sockets
        • Access Control
        • Quotas
        • Cyrus Sieve
        • Cyrus Backups
        • Cyrus NNTP
        • Cyrus Prot Layer
        • Standard Operating Procedures
        • Cyrus Event Source
        • Monitoring
        • Mailbox Distribution
        • Cyrus Murder
        • HOWTO: Using an NGINX IMAP Proxy
        • Tweaking Cyrus IMAP
    • Frequently Asked Questions
      • Features
        • Which database backend should I use for which databases?
        • Duplicate Delivery Suppression
      • Installation Problems
        • Compilation errors about kssl.h and krb5.h on Red Hat Linux/Fedora
        • Help! There must be an easier way to get all this going...
        • OpenSSL Version Mismatches
      • Common Feature Requests
        • Does the Cyrus Murder support High Availability configurations?
        • Can I configure pop3d to log amount and size of messages fetched by user?
        • How can I make CyrusSieve work with public shared folders?
        • Can I have subfolders not appear under INBOX?
      • Common Operational Questions
        • How do I view ACLs on a mailbox?
        • What annotations are available?
        • Is it safe to put <configdirectory>/proc and <configdirectory>/lock on a tmpfs filesystem?
        • How to enable core dumps
        • Why can I not delete a mailbox as an admin user?
        • When is What ... Deleted, Expired, Expunged or Purged?
        • Why is deliver.db so large?
        • I have multiple imapd-SERVICES configured and experience occasional freezes when I try to log in!
        • How to run gdb on Cyrus components
        • Cyrus delivers claims that the mailbox does not exist
        • Why is mail being rejected with No Mailbox found due to MiXed CaSe incoming e-mail?
        • Can I use MySQL (or another SQL database) as the primary mail store?
        • Why do POP3 connections take so long, but once the connection is established all is well?
        • Why does reconstruct -m not work?
        • Shared File Systems GPFS for high availability
        • How to enable telemetry
        • The process count keeps growing!
        • "unable to join environment" error
        • Why does Cyrus set the MAIL FROM address of the sender of vacation responses to '<>'?
      • Common Interoperability Problems
        • Why does Cyrus reject 8-bit characters in the headers of my messages?
        • Why does Cyrus reject messages with "bare newlines"?
        • How do I get Cyrus Sieve to play nice with Exim?
        • Why does mail delivery go slow or hang sometimes?
  • Developers
    • We need your help
    • Contribute docs
      • Overview
      • Documentation Tools
      • Building the files
      • Submitting updates
        • Using GitHub pull requests
        • Patches through the mailing list
      • Special Tags
        • rfc
        • cyrusman
        • imap_current_stable_version
      • Conventions: Man Pages
        • Synopsis
        • Examples
    • Contribute code and tests
      • Getting Started
        • Development Process
        • Overview of Cyrus development environment
        • GitHub guide
        • Compiling
        • Installing Cyrus
        • Developer Test Environment
        • JMAP support
      • System files and Databases
        • Namespaces: a developer view
      • Resources
        • Developer Libraries
      • Releasing
        • Releasing Cyrus IMAP
        • Releasing new builds of ancient Cyrus IMAP versions
    • Cyrus.Works
      • About Cyrus Works
      • How it works
    • Cyrus Internals
      • Cyrus APIs
        • CyrusDB API
        • cyrusdb API
        • Index API
        • Mailbox API
      • Thoughts & Notes
        • Notes for backup implementation
        • Cyrus IMAP Server: Sieve Bytecode
        • Cyrus CalDAV Scheduling Flowchart
        • Enabling improved_mboxlist_sort
        • Cyrus IMAP Server: Notes
        • Cyrus IMAP Server: Prot Events
      • Guidance for Developers
        • Cyrus IMAP Server: Hacking
        • Cyrus IMAP Server: Internationalization
        • Cyrus IMAP Server: Locking
        • Cyrus IMAP Server: Mailbox File Formats
        • Cyrus IMAP Server: Namelocks
        • Cyrus IMAP Server: prot layer
        • Cyrus IMAP Server: Replication Examples
        • Cyrus IMAP Server: Replication Protocol v2.4+
        • Cyrus IMAP Server: Special Characters
        • Cyrus IMAP Server: var directory structure
    • Unit Tests
      • Unit Tests
        • Table of Contents
        • 1. Introduction
        • 2. What Is A Unit Test?
        • 3. Running The Tests
        • 3.6 Debugging A Test
        • 4. Adding Your Own Tests
        • 4.1 Where To Put Your Tests
        • 4.1 Adding A New Suite
        • 4.2 Adding A Test To A Suite
        • 4.3 Suite Setup And Teardown
  • Support/Community
    • Found a bug?
    • Mailing lists
    • Weekly meetings
    • About
      • What is Cyrus
        • What is Cyrus
        • What is IMAP?
        • IMAP Version 4 (IMAP4)
        • Mime
        • SMTP
      • Who Is Cyrus
        • Core Contributors
        • Individual contributors and past contributors
      • Cyrus Roadmap
        • High Level Roadmap
      • Cyrus History
      • Cyrus Bylaws
        • I. The Cyrus Governance Board
        • II. The Cyrus Core Developers Group
        • III. The Release Engineer
        • IV. The Cyrus Roadmap
        • V. Development Process
        • VI. Changes to the Bylaws

Cyrus SASL

  • Cyrus SASL
master:
 
Cyrus IMAP
  • Docs v3.9.0-alpha0 (dev) »
  • Operations »
  • Administrator Guide »
  • Standard Operating Procedures »
  • Using Squatter for Faster IMAP SEARCH
  • Edit on GitHub

Using Squatter for Faster IMAP SEARCH¶

IMAP SEARCH, as described in RFC 3501, is a IMAP4 (Rev1) command issued by the client, but executed on the server. The Cyrus IMAP server will search the mailbox for the content matching the search command issued. This may be an intensive operation if executed on large mailboxes, and may therefor delay the response to the client.

To significantly speed up the searching, Cyrus IMAP can create a cache of message contents and meta-data using cyrus-squatter(8). This chapter explains how to generate and maintain these caches.

Squatter Invocation¶

Consider the following implications of running cyrus-squatter;

  • Squatter creates the search index from all messages in the mailbox

Generating the Search Indexes¶

To generate the search index for all mailboxes, issue the following command:

$ squatter -v

While the Cyrus IMAP server now has the search index available for the mailbox contents, it does not automatically update the search index with new messages coming in.

Next Previous

© Copyright 1993–2023, The Cyrus Team. Last updated on Jul 17 2020

Built with Sphinx 1.4.9 using a modified Read the Docs theme.