=head1 NAME public-inbox-index - create and update search indices =head1 SYNOPSIS public-inbox-index [OPTIONS] REPO_DIR =head1 DESCRIPTION public-inbox-index creates and updates the search and NNTP article number database used by the read-only public-inbox HTTP and NNTP interfaces. Currently, this requires L and L and L Perl modules. Once the initial indices are created by public-inbox-index, L and L will automatically maintain them. Running this manually to update indices is only required if relying on L to mirror an existing public-inbox; or if upgrading to a new version of public-inbox using the C<--reindex> option. Having a search and article number database is essential to running the NNTP interface, and strongly recommended for the HTTP interface as it provides thread grouping in addition to normal search functionality. =head1 OPTIONS =over =item --reindex Forces a search engine re-index of all messages in the repository. This can be used for in-place upgrades while NNTP/HTTP server processes are utilizing the index. Keep in mind this roughly doubles the size of the already-large Xapian database. This does not touch the NNTP article number database. =back =head1 FILES All public-inbox-specific files are contained within the C<$REPO_DIR/public-inbox/> directory. All files are expected to grow in size as more messages are archived, so using compaction commands (e.g. L) is not recommended unless the list is no longer active. =over =item $REPO_DIR/public-inbox/msgmap.sqlite3 The stable NNTP article number to Message-ID mapping is stored in an SQLite3 database. This is required for users of L, but users of the L interface will find it useful for attempting recovery from copy-paste truncations of URLs containing long Message-IDs. Avoid removing this file and regenerating it; it may cause existing NNTP readers to lose sync and miss (or see duplicate) messages. This file is relatively small, and typically less than 5% of the space of the mail stored in a packed git repository. =item $REPO_DIR/public-inbox/xapian* The database used by L. This directory name is followed by a number indicating the index schema version this installation of public-inbox uses. These directories may be safely deleted or removed in full while the NNTP and HTTP interfaces are no longer accessing them. In addition to providing a search interface for the HTTP interface, the Xapian database is used to group and combine related messages into threads. For NNTP servers, it also provides a cache of metadata and header information often requested by NNTP clients. This directory is large, often two to three times the size of the objects stored in a packed git repository. Using the C<--reindex> option makes it larger, still. =back =head1 ENVIRONMENT =over 8 =item PI_CONFIG Used to override the default "~/.public-inbox/config" value. =back =head1 CONTACT Feedback welcome via plain-text mail to L The mail archives are hosted at L and L =head1 COPYRIGHT Copyright 2016-2018 all contributors L License: AGPL-3.0+ L =head1 SEE ALSO L, L