about summary refs log tree commit homepage
path: root/lib/PublicInbox/SearchIdx.pm
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2020-12-17 03:39:49 +0000
committerEric Wong <e@80x24.org>2020-12-19 09:32:08 +0000
commitba135f3e25bf5d1b3aa3d34e31fefb55ee4c8d29 (patch)
tree591c59df84844c8383c103f3b23b0dc9394e763e /lib/PublicInbox/SearchIdx.pm
parent475e6b6a722361223505a7fcb084f5e729c69240 (diff)
downloadpublic-inbox-ba135f3e25bf5d1b3aa3d34e31fefb55ee4c8d29.tar.gz
search: simplify initialization, add ->xdb_shards_flat
This reduces differences between v1 and v2 code, and
introduces ->xdb_shards_flat to provide read-only access
to shards without using Xapian::MultiDatabase.  This
will allow us to combine shards of several inboxes
AND extindexes for lei.
Diffstat (limited to 'lib/PublicInbox/SearchIdx.pm')
-rw-r--r--lib/PublicInbox/SearchIdx.pm15
1 files changed, 6 insertions, 9 deletions
diff --git a/lib/PublicInbox/SearchIdx.pm b/lib/PublicInbox/SearchIdx.pm
index 548f2114..7e2843e9 100644
--- a/lib/PublicInbox/SearchIdx.pm
+++ b/lib/PublicInbox/SearchIdx.pm
@@ -54,14 +54,11 @@ sub new {
                 }
         }
         $ibx = PublicInbox::InboxWritable->new($ibx);
-        my $self = bless {
-                ibx => $ibx,
-                xpfx => $inboxdir, # for xpfx_init
-                -altid => $altid,
-                ibx_ver => $version,
-                indexlevel => $indexlevel,
-        }, $class;
-        $self->xpfx_init;
+        my $self = PublicInbox::Search->new($ibx);
+        bless $self, $class;
+        $self->{ibx} = $ibx;
+        $self->{-altid} = $altid;
+        $self->{indexlevel} = $indexlevel;
         $self->{-set_indexlevel_once} = 1 if $indexlevel eq 'medium';
         if ($ibx->{-skip_docdata}) {
                 $self->{-set_skip_docdata_once} = 1;
@@ -408,7 +405,7 @@ sub add_xapian ($$$$) {
 
 sub _msgmap_init ($) {
         my ($self) = @_;
-        die "BUG: _msgmap_init is only for v1\n" if $self->{ibx_ver} != 1;
+        die "BUG: _msgmap_init is only for v1\n" if $self->{ibx}->version != 1;
         $self->{mm} //= eval {
                 require PublicInbox::Msgmap;
                 my $rw = $self->{ibx}->{-no_fsync} ? 2 : 1;