koha-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Koha-cvs] koha/C4 AuthoritiesMarc.pm Breeding.pm Context....


From: Tumer Garip
Subject: [Koha-cvs] koha/C4 AuthoritiesMarc.pm Breeding.pm Context....
Date: Sun, 01 Oct 2006 21:48:54 +0000

CVSROOT:        /sources/koha
Module name:    koha
Changes by:     Tumer Garip <tgarip1957>        06/10/01 21:48:54

Modified files:
        C4             : AuthoritiesMarc.pm Breeding.pm Context.pm 
                         Koha.pm Search.pm 
        C4/Circulation : Circ2.pm 

Log message:
        Field weighting applied to ranked searches. A new facets table in mysql 
db

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/C4/AuthoritiesMarc.pm?cvsroot=koha&r1=1.35&r2=1.36
http://cvs.savannah.gnu.org/viewcvs/koha/C4/Breeding.pm?cvsroot=koha&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/koha/C4/Context.pm?cvsroot=koha&r1=1.47&r2=1.48
http://cvs.savannah.gnu.org/viewcvs/koha/C4/Koha.pm?cvsroot=koha&r1=1.44&r2=1.45
http://cvs.savannah.gnu.org/viewcvs/koha/C4/Search.pm?cvsroot=koha&r1=1.124&r2=1.125
http://cvs.savannah.gnu.org/viewcvs/koha/C4/Circulation/Circ2.pm?cvsroot=koha&r1=1.119&r2=1.120

Patches:
Index: AuthoritiesMarc.pm
===================================================================
RCS file: /sources/koha/koha/C4/AuthoritiesMarc.pm,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -b -r1.35 -r1.36
--- AuthoritiesMarc.pm  29 Sep 2006 16:14:25 -0000      1.35
+++ AuthoritiesMarc.pm  1 Oct 2006 21:48:54 -0000       1.36
@@ -121,7 +121,7 @@
 $length=10 unless $length;
 my @oAuth;
 my $i;
- $oAuth[0]=C4::Context->Zconn("authorityserver",1,1);
+ $oAuth[0]=C4::Context->Zconnauth("authorityserver");
 my ($mainentry)=MARCfind_attr_from_kohafield("mainentry");
 my ($allentry)=MARCfind_attr_from_kohafield("allentry");
 
@@ -738,7 +738,7 @@
                if ($update==1){
                my 
$biblionumber=XML_readline_onerecord($xmlhash,"biblionumber","biblios");
                my $frameworkcode=MARCfind_frameworkcode($dbh,$biblionumber);
-               ModBiblio($dbh,$biblionumber,$xmlhash,$frameworkcode) ;
+               NEWmodbiblio($dbh,$biblionumber,$xmlhash,$frameworkcode) ;
                }
                
      }#foreach $xmlhash
@@ -811,7 +811,7 @@
 #$xml represents one record of MARCXML as perlhashed 
 ## returns an array of read fields--useful for reading repeated fields
 ### $recordtype is needed for mapping the correct field if supplied
-### If only $tag is give reads the whole tag
+### If only $tag is given reads the whole tag
 ###Returns subfieldcodes as well
 my @value;
  ($tag,$subf)=MARCfind_marc_from_kohafield($kohafield,$recordtype) if 
$kohafield;
@@ -847,7 +847,7 @@
 
 =cut
 
-# $Id: AuthoritiesMarc.pm,v 1.35 2006/09/29 16:14:25 kados Exp $
+# $Id: AuthoritiesMarc.pm,v 1.36 2006/10/01 21:48:54 tgarip1957 Exp $
 
 # Revision 1.30  2006/09/06 16:21:03  tgarip1957
 # Clean up before final commits

Index: Breeding.pm
===================================================================
RCS file: /sources/koha/koha/C4/Breeding.pm,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- Breeding.pm 1 Sep 2006 22:16:00 -0000       1.11
+++ Breeding.pm 1 Oct 2006 21:48:54 -0000       1.12
@@ -96,20 +96,22 @@
                        $oldbiblio->{issn} = substr($oldbiblio->{issn},0,10);
                        # search if biblio exists
                        my $biblioitemnumber;
+                       my $facets;
                    if ( !$z3950random){
                        if ($oldbiblio->{isbn}) {
                        push @kohafields,"isbn";
                        push @values,$oldbiblio->{isbn};
                        push @relations,"";
                        push @and_or,"";
-                       
($count,@results)=ZEBRAsearch_kohafields(address@hidden,address@hidden,address@hidden);
+                       
+                       
($count,$facets,@results)=ZEBRAsearch_kohafields(address@hidden,address@hidden,address@hidden);
                        } else {
                        push @kohafields,"issn";
                        push @values,$oldbiblio->{issn};
                        push @relations,"";
                        push @and_or,"";
                        $sort="";
-                       
($count,@results)=ZEBRAsearch_kohafields(address@hidden,address@hidden,address@hidden);
+                       
($count,$facets,@results)=ZEBRAsearch_kohafields(address@hidden,address@hidden,address@hidden);
                        }
                     }
                        if ($count>0 && !$z3950random) {

Index: Context.pm
===================================================================
RCS file: /sources/koha/koha/C4/Context.pm,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -b -r1.47 -r1.48
--- Context.pm  27 Sep 2006 19:53:52 -0000      1.47
+++ Context.pm  1 Oct 2006 21:48:54 -0000       1.48
@@ -15,7 +15,7 @@
 # Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
 # Suite 330, Boston, MA  02111-1307 USA
 
-# $Id: Context.pm,v 1.47 2006/09/27 19:53:52 tgarip1957 Exp $
+# $Id: Context.pm,v 1.48 2006/10/01 21:48:54 tgarip1957 Exp $
 package C4::Context;
 use strict;
 use DBI;
@@ -25,7 +25,7 @@
        qw($context),
        qw(@context_stack);
 
-$VERSION = do { my @v = '$Revision: 1.47 $' =~ /\d+/g;
+$VERSION = do { my @v = '$Revision: 1.48 $' =~ /\d+/g;
                shift(@v) . "." . join("_", map {sprintf "%03d", $_ } @v); };
 
 =head1 NAME
@@ -652,11 +652,11 @@
 {
        my $dbh = C4::Context->dbh;
        my $attrfromkohafield;
-       my $sth2 = $dbh->prepare("select kohafield,attr,extraattr from 
koha_attr" );
+       my $sth2 = $dbh->prepare("select kohafield,attr from koha_attr" );
        $sth2->execute;
-       while (my ($kohafield,$attr,$extra) = $sth2->fetchrow) {
+       while (my ($kohafield,$attr) = $sth2->fetchrow) {
                my $retval = {};
-               $attrfromkohafield->{$kohafield} = "address@hidden 1=".$attr." 
".$extra;
+               $attrfromkohafield->{$kohafield} = $attr;
        }
        return $attrfromkohafield;
 }
@@ -832,6 +832,9 @@
 
 =cut
 # $Log: Context.pm,v $
+# Revision 1.48  2006/10/01 21:48:54  tgarip1957
+# Field weighting applied to ranked searches. A new facets table in mysql db
+#
 # Revision 1.47  2006/09/27 19:53:52  tgarip1957
 # Finalizing main components. All koha modules are now working with the new 
XML API
 #

Index: Koha.pm
===================================================================
RCS file: /sources/koha/koha/C4/Koha.pm,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -b -r1.44 -r1.45
--- Koha.pm     27 Sep 2006 19:53:52 -0000      1.44
+++ Koha.pm     1 Oct 2006 21:48:54 -0000       1.45
@@ -17,7 +17,7 @@
 # Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
 # Suite 330, Boston, MA  02111-1307 USA
 
-# $Id: Koha.pm,v 1.44 2006/09/27 19:53:52 tgarip1957 Exp $
+# $Id: Koha.pm,v 1.45 2006/10/01 21:48:54 tgarip1957 Exp $
 
 use strict;
 require Exporter;
@@ -25,7 +25,7 @@
 use C4::Biblio;
 use vars qw($VERSION @ISA @EXPORT);
 
-$VERSION = do { my @v = '$Revision: 1.44 $' =~ /\d+/g; shift(@v) . "." . 
join("_", map {sprintf "%03d", $_ } @v); };
+$VERSION = do { my @v = '$Revision: 1.45 $' =~ /\d+/g; shift(@v) . "." . 
join("_", map {sprintf "%03d", $_ } @v); };
 
 =head1 NAME
 
@@ -916,18 +916,18 @@
 ###Subfields is an array as well although MARC21 has them all in "a" in case 
UNIMARC has differing subfields
 my $dbh=C4::Context->dbh;
 my @facets;
-my $sth=$dbh->prepare("SELECT  facets_label,attr FROM koha_attr  where 
(facets_label<>'' ) group by facets_label");
-my $sth2=$dbh->prepare("SELECT * FROM koha_attr where facets_label=?");
+my $sth=$dbh->prepare("SELECT  facets_label,kohafield FROM facets  where 
(facets_label<>'' ) group by facets_label");
+my $sth2=$dbh->prepare("SELECT * FROM facets where facets_label=?");
 $sth->execute();
-while (my ($label,$attr)=$sth->fetchrow){
+while (my ($label,$kohafield)=$sth->fetchrow){
  $sth2->execute($label);
 my (@tags,@subfield);
        while (my $data=$sth2->fetchrow_hashref){
        push @tags,$data->{tagfield} ;
-       push @subfield,$data->{tagsubfield} ;
+       push @subfield,$data->{subfield} ;
        }
         my $facet =  {
-        link_value =>"kohafield=$attr",
+        link_value =>"kohafield=$kohafield",
                label_value =>$label,
                tags => address@hidden,
                subfield =>address@hidden,

Index: Search.pm
===================================================================
RCS file: /sources/koha/koha/C4/Search.pm,v
retrieving revision 1.124
retrieving revision 1.125
diff -u -b -r1.124 -r1.125
--- Search.pm   27 Sep 2006 19:53:52 -0000      1.124
+++ Search.pm   1 Oct 2006 21:48:54 -0000       1.125
@@ -32,7 +32,7 @@
 use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
 
 # set the version for version checking
-$VERSION = do { my @v = '$Revision: 1.124 $' =~ /\d+/g;
+$VERSION = do { my @v = '$Revision: 1.125 $' =~ /\d+/g;
           shift(@v) . "." . join("_", map {sprintf "%03d", $_ } @v); };
 
 =head1 NAME
@@ -93,11 +93,11 @@
      unless($searchtype){
        for ( $i=0; $i<=$#{$value}; $i++){
        next if (@$value[$i] eq "");
-
        my $keyattr=MARCfind_attr_from_kohafield(@$kohafield[$i]) if 
(@$kohafield[$i]);
        if (!$keyattr){$keyattr=" address@hidden 1=any";}
        @$value[$i]=~ 
s/(\.|\?|\;|\=|\/|\\|\||\:|\*|\!|\,|\(|\)|\[|\]|\{|\}|\/)/ /g;
-       address@hidden" ".$keyattr." \""address@hidden"\" " if @$value[$i];
+       my $weighted=weightRank(@$kohafield[$i],@$value[$i],$i) unless($sort || 
$reorder);
+       address@hidden" ".$keyattr." \""address@hidden"\" " if @$value[$i];
        }
        for (my $z= 0;$z<=$#{$and_or};$z++){
        address@hidden" ".$query if (@$value[$z+1] ne "");
@@ -124,11 +124,6 @@
        }elsif ($sortpart[1]==1){
        $sortpart[1]="<i"; ##Ascending
        }
-}else{
- unless($query=~/4=109/){ ###ranked sort not valid for numeric fields
-##Use Ranked sort
-$query="address@hidden 2=102 ".$query;
-}
 }
 
 if ($searchtype){
@@ -191,16 +186,36 @@
                        return ($numresults,$facets,@parsed)  ;
                        }
     }# if numresults
-EXITING:
+
 $oResult->destroy();
 $oConnection[0]->destroy();
+EXITING:
 return ($numresults,@results)  ;
 }
 
+sub weightRank {
+my ($kohafield,$value,$i)address@hidden;
+### If a multi query is received weighting is reduced from 1st query being 
highest rank to last query being lowest;
+my $weighted;
+my $weight=1000 -($i*100);
+$weight=100 if $weight==0;
+       return "" if $value eq "";
+       my $keyattr=MARCfind_attr_from_kohafield($kohafield) if ($kohafield);
+       return "" if($keyattr=~/4=109/ || $keyattr=~/4=4/ || $keyattr=~/4=5/); 
###ranked sort not valid for numeric fields
+       my $fullfield; ### not all indexes are Complete-field. Use only for 
title||author
+       if ($kohafield eq "title" || $kohafield eq "" || $kohafield eq "any"){
+       $keyattr=" address@hidden 1=title-cover";
+       $fullfield="address@hidden 6=3 ";
+       }elsif ($kohafield eq "author"){
+       $fullfield="address@hidden 6=3 ";
+       }
+       $weighted.="address@hidden 2=102 ".$keyattr." address@hidden 3=1 
$fullfield  address@hidden 9=$weight \"".$value."\" " ;
+      $weighted=" address@hidden ".$weighted;
+  return $weighted;
+}
 sub convertPQF{
 # Convert CCL, CQF or PQF to ZEBRA RPN queries,trap errors
 my ($search_type,$zconn,$query)address@hidden;
-
 my $pqf_query;
 if ($search_type eq "pqf"){
 eval{

Index: Circulation/Circ2.pm
===================================================================
RCS file: /sources/koha/koha/C4/Circulation/Circ2.pm,v
retrieving revision 1.119
retrieving revision 1.120
diff -u -b -r1.119 -r1.120
--- Circulation/Circ2.pm        27 Sep 2006 19:53:52 -0000      1.119
+++ Circulation/Circ2.pm        1 Oct 2006 21:48:54 -0000       1.120
@@ -3,7 +3,7 @@
 
 package C4::Circulation::Circ2;
 
-# $Id: Circ2.pm,v 1.119 2006/09/27 19:53:52 tgarip1957 Exp $
+# $Id: Circ2.pm,v 1.120 2006/10/01 21:48:54 tgarip1957 Exp $
 
 #package to deal with Returns
 #written 3/11/99 by address@hidden
@@ -237,20 +237,21 @@
        my @relations;
        my $sort;
        my @and_or;
+       my $facets;
        if ($datelastseen){
                push @kohafields, "classification","datelastseen";
                push @values,$minlocation,$datelastseen;
                push @relations,"address@hidden 5=1  address@hidden 6=3 
address@hidden 4=1 ","address@hidden 2=1 ";
                push @and_or,"address@hidden";
                $sort="lcsort";
-               
($count,@results)=ZEBRAsearch_kohafields(address@hidden,address@hidden,address@hidden,$sort,address@hidden,0,"",$offset,$size);
+               
($count,$facets,@results)=ZEBRAsearch_kohafields(address@hidden,address@hidden,address@hidden,$sort,address@hidden,0,"",$offset,$size);
        }else{
        push @kohafields, "classification";
                push @values,$minlocation;
                push @relations,"address@hidden 5=1  address@hidden 6=3 
address@hidden 4=1 ";
                push @and_or,"";
                $sort="lcsort";
-               
($count,@results)=ZEBRAsearch_kohafields(address@hidden,address@hidden,address@hidden,$sort,address@hidden,0,"",$offset,$size);
+               
($count,$facets,@results)=ZEBRAsearch_kohafields(address@hidden,address@hidden,address@hidden,$sort,address@hidden,0,"",$offset,$size);
        }
        
        return @results;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]