#+TITLE: MU INIT
#+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@"

* NAME

mu-init - initialize the mu message database

* SYNOPSIS

*mu [common-options] init [options]*

* DESCRIPTION

*mu init* is the subcommand for setting up the mu message database. After *mu init*
has completed, you can run *mu index*

* INIT OPTIONS

** -m, --maildir=<maildir>

use =<maildir>= as the root-maildir.

By default, *mu* uses the *MAILDIR* environment; if it is not set, it uses =~/Maildir=
if it is an existing directory. If neither of those can be used, the ~--maildir~
option is required; it must be an absolute path (but ~~/~ expansion is
performed).

** --my-address=<email-address-or-regex>

specifies that some e-mail address is `my-address' (the option can be used
multiple times). Any message in which at least one of the contact fields
contains such an address is considered a `personal' messages; this can then be
used for filtering in *mu-find(1)*, *mu-cfind(1)* and *mu4e*, e.g. to filter-out
mailing list messages.

=<email-address-or-regex>= can be either a plain e-mail address (such as
*foo@example.com*), or a basic PCRE regular-expression (see *pcre(3)* for details),
wrapped in */* (such as =/foo-.*@example\\.com/=). Depending on your shell, the
argument may need to be quoted.

** --ignored-address=<email-address-or-regex>

specifies that some e-mail address is to be ignored from the contacts-cache (the
option can be used multiple times). Such addresses then cannot be found with
*mu-cfind(1)* or in the Mu4e contacts cache.

=<my-email-address>= can be either a plain e-mail address or a regexp, just like
for the =--my-address= option.

** --max-message-size=<size>

specifies the maximum size for an e-mail message. Usually, the default of
100000000 bytes should be fine.

** --batch-size=<size>

the number of changes after which they are committed to the database; decreasing
the value reduces the memory requirements, at the cost of make indexing
substantially slower. Usually, the default of 250000 should be fine.

Batch-size 0 is interpreted as `use the default'.

** --support-ngrams

whether to enable support for using ngrams in indexing and query parsing; this
can be useful for languages without explicit word breaks, such as
Chinese/Japanese/Korean. See *NGRAM SUPPORT* below for details.

** --reinit

reinitialize the database from an earlier version; that is, create a new empty
database with the existing settings. This cannot be combined with the other ~init~
options.

#+include: "muhome.inc" :minlevel 2

* NGRAM SUPPORT

*mu*'s underlying Xapian database supports `ngrams', which improve searching for
languages/scripts that do not have explicit word breaks, such as Chinese,
Japanese and Korean. It is fairly intrusive, and influences both indexing and
query-parsing; it is not enabled by default, and is recommended only if you need
to search for messages written in such languages.

When enabled, *mu* automatically uses ngrams automatically. Xapian environment
variables such as ~XAPIAN_CJK_NGRAM~ are ignored.

#+include: "exit-code.inc" :minlevel 1


* EXAMPLE
#+begin_example
$ mu init --maildir=~/Maildir --my-address=alice@example.com --my-address=bob@example.com --ignored-address='/.*reply.*/'
#+end_example

#+include: "prefooter.inc" :minlevel 1

* SEE ALSO

*mu-index(1)*, *mu-find(1)*, *mu-cfind(1)*, *pcre(3)*
