[Top][All Lists]
[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;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Koha-cvs] koha/C4 AuthoritiesMarc.pm Breeding.pm Context....,
Tumer Garip <=