allow the search index depth to be configured in bse.cfg
authorTony Cook <tony@develop-help.com>
Thu, 26 Jul 2012 05:33:59 +0000 (15:33 +1000)
committerTony Cook <tony@develop-help.com>
Thu, 26 Jul 2012 08:58:16 +0000 (18:58 +1000)
Previously only configurable in Constants.pm

site/cgi-bin/modules/BSE/Index.pm
site/docs/config.pod

index a25af23..31753ea 100644 (file)
@@ -1,10 +1,10 @@
 package BSE::Index;
 use strict;
 use Time::HiRes qw(time);
-use Constants qw($BASEDIR $MAXPHRASE $DATADIR @SEARCH_EXCLUDE @SEARCH_INCLUDE $SEARCH_LEVEL);
+use Constants qw(@SEARCH_EXCLUDE @SEARCH_INCLUDE);
 use Articles;
 
-our $VERSION = "1.001";
+our $VERSION = "1.003";
 
 my %default_scores =
   (
@@ -24,16 +24,16 @@ my %default_scores =
 sub new {
   my ($class, %opts) = @_;
 
+  my $cfg = BSE::Cfg->single;
   unless ($opts{scores}) {
     my $scores = { %default_scores };
-    my $cfg = BSE::Cfg->single;
     for my $field (keys %$scores) {
       $scores->{$field} = $cfg->entry("search index scores", $field, $scores->{$field});
     }
     $opts{scores} = $scores;
   }
   $opts{start} = time;
-  $opts{max_level} ||= $SEARCH_LEVEL;
+  $opts{max_level} ||= $cfg->entry("search", "level", $Constants::SEARCH_LEVEL);
 
   return bless \%opts, $class;
 }
index 9313e86..c2c9874 100644 (file)
@@ -820,6 +820,11 @@ usage.
 C<memory> priority index building requires that the DBM::Deep module
 be installed.
 
+=item level
+
+Articles with a higher level than this are indexed as their ancestor.
+Default: C<$SEARCH_LEVEL> which defaults to 5.
+
 =back
 
 =head2 [search highlight]