#+TITLE: MU INIT
#+MAN_CLASS_OPTIONS: :section-id "@SECTION_ID@" :date "@MAN_DATE@"
#+include: macros.inc

* 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 a personal address. The option can be used
multiple times, to specify all your addresses.

Any message in which at least one of the contact fields contains such an address
is considered a `personal' message; this can then be used for filtering in
{{{man-link(mu-find,1)}}}, {{{man-link(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 {{{man-link(pcre,3)}}}
for details), wrapped in */* (such as =/foo-.*@example\\.com/=). Depending on your
shell, the argument may need to be quoted.

A note of warning for *mu4e* users: any regular-expressions used with
=--with-address= are also used by *mu4e*. Unfortunately, PCRE regular expressions
are *not* generally compatible with Emacs regular expressions. For instance,
*(foo|bar)* in PCRE syntax has *\(foo\|bar\)* as its Emacs equivalent.

The good news is that *mu4e* can automatically translate the regular-expressions,
if you allow it to, by installing the *pcre2el* Elisp package. See the *mu4e*
documentation for further details.

** --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
{{{man-link(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

{{{man-link(mu-index,1)}}},
{{{man-link(mu-find,1)}}},
{{{man-link(mu-cfind,1)}}},
{{{man-link(pcre,3)}}}
