# 9 - disable Message-ID compression (SHA-1)
# 10 - optimize doc for NNTP overviews
# 11 - merge threads when vivifying ghosts
- SCHEMA_VERSION => 11,
+ # 12 - change YYYYMMDD value column to numeric
+ SCHEMA_VERSION => 12,
# n.b. FLAG_PURE_NOT is expensive not suitable for a public website
# as it could become a denial-of-service vector
);
my %prob_prefix = (
- s => 'S', # for mairix compatibility
- m => 'Q', # 'mid' is exact, 'm' can do partial
- f => 'A', # for mairix compatibility
- t => 'XTO', # for mairix compatibility
- tc => 'XTC', # for mairix compatibility
- c => 'XCC', # for mairix compatibility
- tcf => 'XTCF', # for mairix compatibility
+ # for mairix compatibility
+ s => 'S',
+ m => 'XMID', # 'mid:' (bool) is exact, 'm:' (prob) can do partial
+ f => 'A',
+ t => 'XTO',
+ tc => 'XTO XCC',
+ c => 'XCC',
+ tcf => 'XTO XCC A',
+ b => 'XNQ XQUOT',
+ bs => 'XNQ XQUOT S',
+ n => 'XFN',
+
# n.b.: leaving out "a:" alias for "tcf:" even though
# mairix supports it. It is only mentioned in passing in mairix(1)
# and the extra two letters are not significantly longer.
+ q => 'XQUOT',
+ nq => 'XNQ',
+
+ # default:
+ '' => 'XMID S A XNQ XQUOT XFN',
);
# not documenting m: and mid: for now, the using the URLs works w/o Xapian
$qp->set_stemmer($self->stemmer);
$qp->set_stemming_strategy(STEM_SOME);
$qp->add_valuerangeprocessor(
- Search::Xapian::StringValueRangeProcessor->new(YYYYMMDD, 'd:'));
+ Search::Xapian::NumberValueRangeProcessor->new(YYYYMMDD, 'd:'));
while (my ($name, $prefix) = each %bool_pfx_external) {
$qp->add_boolean_prefix($name, $prefix);
}
while (my ($name, $prefix) = each %prob_prefix) {
- $qp->add_prefix($name, $prefix);
+ $qp->add_prefix($name, $_) foreach split(/ /, $prefix);
}
$self->{query_parser} = $qp;