public-inbox.git  about / heads / tags
an "archives first" approach to mailing lists
blob fdc2b82d5d12390d33ecc8e69c79e6265df5822d 3267 bytes (raw)
$ git show HEAD:Documentation/public-inbox-cindex.pod	# shows this blob on the CLI

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
 
=head1 NAME

public-inbox-cindex - create and update code repository search indices

=head1 SYNOPSIS

public-inbox-cindex [OPTIONS] -g GIT_DIR [-g GIT_DIR]...

public-inbox-cindex [OPTIONS] --update

=head1 DESCRIPTION

public-inbox-cindex creates and updates the Xapian search index for
git code repository (C<coderepo>) search.  It can also associate
(fuzzy join) coderepos with Xapian-indexed inboxes.  It only indexes
commit messages and diffs as they would show up in an email.  It
does not index the contents of blobs directly.

Like inbox indices, coderepo indices can either be internal or external
to a coderepo.  Either way, they're both created and updated through
public-inbox-cindex.

Once the initial indices are created by public-inbox-cindex,
the L</--update> switch will incrementally update them.

=head1 OPTIONS

=over

=item -d EXTDIR

Use the given directory as an external index.  External indices are
generally recommended to internal indices since they do not need
write access to any code repositories themselves.  They are highly
recommended when many repositories share a common history or if
there is an M:N relationship between inboxes and coderepos.

=item -j JOBS

=item --jobs=JOBS

Influences the number of Xapian indexing shards.

If the repo has not been indexed or initialized, C<JOBS - 1>
shards will be created.

Default: the number of existing Xapian shards

=item --reindex

Forces a re-index of all commits.  This can be used for in-place
upgrades and bugfixes while read-only processes are utilizing the index.

=item --update

=item -u

Incrementally index all previously-indexed coderepos.

=item --prune

Removes commits which are no longer accessible via git.
Use this after L<git-gc(1)> (or L<git-prune(1)>).

=item --no-fsync

=item --dangerous

=item --max-size SIZE

=item --batch-size SIZE

These affect the coderepo index the same way they affect
inbox indices.  See L<public-inbox-index(1)>.

=back

=head1 FILES

For internal indices, the Xapian DB is stored in
C<$GIT_DIR/public-inbox-cindex>.

External indices are stored wherever L</-d> EXTDIR points.

=head1 CONFIGURATION

=over 8

=item publicinbox.indexMaxSize

=item publicinbox.indexBatchSize

These configuration knobs affect the coderepo index the same way
they affect inbox indices.  See L<public-inbox-index(1)>.

=back

=head1 ENVIRONMENT

=over 8

=item PI_CONFIG

Used to override the default "~/.public-inbox/config" value.

=item XAPIAN_FLUSH_THRESHOLD

The number of documents to update before committing changes to
disk.  This variable is handled directly by Xapian, refer to
Xapian API documentation for more details.

Use C<publicinbox.indexBatchSize> instead.

=back

=head1 UPGRADING

Occasionally, public-inbox will update its schema version and
require a full reindex by running this command with L</--reindex>.

=head1 CONTACT

Feedback welcome via plain-text mail to L<mailto:meta@public-inbox.org>

The mail archives are hosted at L<https://public-inbox.org/meta/> and
L<http://4uok3hntl7oi7b4uf4rtfwefqeexfzil2w6kgk2jn5z2f764irre7byd.onion/meta/>

=head1 COPYRIGHT

Copyright all contributors L<mailto:meta@public-inbox.org>

License: AGPL-3.0+ L<https://www.gnu.org/licenses/agpl-3.0.txt>

=head1 SEE ALSO

L<public-inbox-index(1)>

git clone https://public-inbox.org/public-inbox.git
git clone http://7fh6tueqddpjyxjmgtdiueylzoqt6pt7hec3pukyptlmohoowvhde4yd.onion/public-inbox.git