#+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>

starts searching at =<maildir>=. By default, *mu* uses whatever the *MAILDIR*
environment variable is set to; if it is not set, it tries =~/Maildir= if it
already exists.

** --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 address 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>

number of changes after which they are committed to the database; decreasing
this reduces the memory requirements, but make indexing substantially slows (and
vice-versa for increasing). Usually, the default of 250000 should be fine.

** --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/Japanes/Korean. See *NGRAM SUPPORT* below.


** --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 influence both indexing and
query-parsing; it is not enabled by default, and is recommended only if you need
to search 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)*
