diff options
author | Eric Wong <e@80x24.org> | 2016-09-09 00:01:24 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2016-09-09 00:02:18 +0000 |
commit | a9c903a57ff9a18c56a53bcba4316eade423fef6 (patch) | |
tree | 2c3499494c6305dc97b74371e575e632222dd19b /lib/PublicInbox/SearchIdx.pm | |
parent | 766d9b1ef9e2e2c325c5dae9d17bfeb85c9d2f93 (diff) | |
download | public-inbox-a9c903a57ff9a18c56a53bcba4316eade423fef6.tar.gz |
"bs:" and "b:" are adapted from mairix(1) We will also support searching explicitly for quoted vs non-quoted text via "q:" and "nq:" prefixes since sometimes readers will not care for quoted text. In the future, we will support parsing diffs (perhaps when repobrowse integration is complete). Note: this roughly doubles the size of the Xapian database due to the additional information; so this change may not be worth it.
Diffstat (limited to 'lib/PublicInbox/SearchIdx.pm')
-rw-r--r-- | lib/PublicInbox/SearchIdx.pm | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/lib/PublicInbox/SearchIdx.pm b/lib/PublicInbox/SearchIdx.pm index 37fefbea..cd27a294 100644 --- a/lib/PublicInbox/SearchIdx.pm +++ b/lib/PublicInbox/SearchIdx.pm @@ -173,7 +173,10 @@ sub add_message { my $tg = $self->term_generator; $tg->set_document($doc); - $tg->index_text($subj, 1, 'S') if $subj; + if ($subj) { + $tg->index_text($subj, 1, 'S'); + $tg->index_text($subj, 1, 'XBS'); + } $tg->increase_termpos; $tg->index_text($subj) if $subj; $tg->increase_termpos; @@ -199,13 +202,21 @@ sub add_message { } } if (@quot) { - $tg->index_text(join("\n", @quot), 0); + my $s = join("\n", @quot); @quot = (); + $tg->index_text($s, 1, 'XQUOT'); + $tg->index_text($s, 0, 'XBS'); + $tg->index_text($s, 0, 'XBODY'); + $tg->index_text($s, 0); $tg->increase_termpos; } if (@orig) { - $tg->index_text(join("\n", @orig)); + my $s = join("\n", @orig); @orig = (); + $tg->index_text($s, 1, 'XNQ'); + $tg->index_text($s, 1, 'XBS'); + $tg->index_text($s, 1, 'XBODY'); + $tg->index_text($s); $tg->increase_termpos; } }); |