From 1031291ec876cf3791077aa7d564a8bf8561ee1f Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 16 Aug 2016 08:49:26 +0000 Subject: search: add YYYYMMDD search range via "d:" prefix This is similar to mairix in that it uses a "d:" prefix; but only takes YYYYMMDD, for now. Using custom date/time parsers via Perl will be much more work: nntp://news.gmane.org/20151005222157.GE5880@survex.com Anyhow, this ought to be more human-friendly than searching by Unix timestamps, but it requires reindexing to take advantage of. --- lib/PublicInbox/SearchIdx.pm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'lib/PublicInbox/SearchIdx.pm') diff --git a/lib/PublicInbox/SearchIdx.pm b/lib/PublicInbox/SearchIdx.pm index f8155ecc..f54f5f2f 100644 --- a/lib/PublicInbox/SearchIdx.pm +++ b/lib/PublicInbox/SearchIdx.pm @@ -17,6 +17,7 @@ use base qw(PublicInbox::Search); use PublicInbox::MID qw/mid_clean id_compress mid_mime/; use PublicInbox::MsgIter; use Carp qw(croak); +use POSIX qw(strftime); require PublicInbox::Git; *xpfx = *PublicInbox::Search::xpfx; @@ -128,7 +129,8 @@ sub add_message { $doc->add_term(xpfx('path') . id_compress($path)); } - add_val($doc, &PublicInbox::Search::TS, $smsg->ts); + my $ts = $smsg->ts; + add_val($doc, &PublicInbox::Search::TS, $ts); defined($num) and add_val($doc, &PublicInbox::Search::NUM, $num); @@ -139,6 +141,9 @@ sub add_message { add_val($doc, &PublicInbox::Search::LINES, $mime->body_raw =~ tr!\n!\n!); + my $yyyymmdd = strftime('%Y%m%d', gmtime($ts)); + $doc->add_value(&PublicInbox::Search::YYYYMMDD, $yyyymmdd); + my $tg = $self->term_generator; $tg->set_document($doc); -- cgit v1.2.3-24-ge0c7