Skip to content

# Full-Text Search

## Overview

Full-text search allows all messages to be indexed, so that mail clients can quickly and efficiently search messages by their full text content.

The dovecot-solr Plugin is used in conjunction with Apache Solr running in a separate container. This is quite straightforward to setup using the following instructions.

## Setup Steps

1. `docker-compose.yml`:

         solr:
           image: lmmdock/dovecot-solr:latest
           volumes:
             - solr-dovecot:/opt/solr/server/solr/dovecot
           restart: always

         mailserver:
           image: mailserver/docker-mailserver:latest
           ...
           volumes:
             ...
             - ./etc/dovecot/conf.d/10-plugin.conf:/etc/dovecot/conf.d/10-plugin.conf:ro
           ...

       volumes:
         solr-dovecot:
           driver: local

2. `etc/dovecot/conf.d/10-plugin.conf`:

       mail_plugins = $mail_plugins fts fts_solr

       plugin {
         fts = solr
         fts_autoindex = yes
         fts_solr = url=http://solr:8983/solr/dovecot/
       }

3. Start the solr container: `docker-compose up -d --remove-orphans solr`

4. Restart the mailserver container: `docker-compose restart mailserver`

5. Flag all user mailbox FTS indexes as invalid, so they are rescanned on demand when they are next searched: `docker-compose exec mailserver doveadm fts rescan -A`

## Further Discussion

See #905