improving record-only search; fixing default sort direction
authormiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 23 Jun 2006 20:10:39 +0000 (20:10 +0000)
committermiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 23 Jun 2006 20:10:39 +0000 (20:10 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@4759 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/metabib.pm
Open-ILS/src/perlmods/OpenILS/WWW/SuperCat.pm

index bfedb17..e6d79bc 100644 (file)
@@ -1945,18 +1945,18 @@ sub biblio_search_multi_class_fts {
                my $fts_where = $fts->sql_where_clause;
                my @fts_ranks = $fts->fts_rank;
 
-               my $SQLstring = join('%',map { lc($_) } $fts->words);
+               my $SQLstring = join('%',map { lc($_) } $fts->words) .'%';
                my $REstring = '^' . join('\s+',map { lc($_) } $fts->words) . '\W*$';
                my $first_word = lc(($fts->words)[0]).'%';
 
                my $rank = join(' + ', @fts_ranks);
 
                my %bonus = ();
-               $bonus{'keyword'} = [ { "CASE WHEN $search_class.value ILIKE ? THEN 1.2 ELSE 1 END" => $SQLstring } ];
+               $bonus{'keyword'} = [ { "CASE WHEN $search_class.value ILIKE ? THEN 10 ELSE 1 END" => $SQLstring } ];
 
                $bonus{'series'} = [
                        { "CASE WHEN $search_class.value ILIKE ? THEN 1.5 ELSE 1 END" => $first_word },
-                       { "CASE WHEN $search_class.value ~ ? THEN 200 ELSE 1 END" => $REstring },
+                       { "CASE WHEN $search_class.value ~ ? THEN 20 ELSE 1 END" => $REstring },
                ];
 
                $bonus{'title'} = [ @{ $bonus{'series'} }, @{ $bonus{'keyword'} } ];
index 71cd05d..8e99bc1 100644 (file)
@@ -708,7 +708,7 @@ sub opensearch_feed {
                                offset          => 0,
                                limit           => 5000,
                                ($sort ?    ( 'sort'     => $sort    ) : ()),
-                               ($sortdir ? ( 'sort_dir' => $sortdir ) : ( sort_dir => 'asc' )),
+                               ($sortdir ? ( 'sort_dir' => $sortdir ) : ($sort ? (sort_dir => 'asc') : (sort_dir => 'desc') )),
                                ($lang ?    ( 'language' => $lang    ) : ()),
                        }
                )->gather(1);