koha-cvs
[Top][All Lists]
Advanced

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

[Koha-cvs] CVS: koha/C4 SearchMarc.pm,1.12,1.13


From: Paul POULAIN
Subject: [Koha-cvs] CVS: koha/C4 SearchMarc.pm,1.12,1.13
Date: Fri, 16 Apr 2004 00:28:25 -0700

Update of /cvsroot/koha/koha/C4
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28364/C4

Modified Files:
        SearchMarc.pm 
Log Message:
improving Search :
* adding "suggestion", that popup a windows. The popup windows shows, for each 
word entered in the search form, the 10 words that sounds like the word 
entered, and that are used most often.
* fixes some minor bugs 

Still to do :
* good support of ' and ,

Index: SearchMarc.pm
===================================================================
RCS file: /cvsroot/koha/koha/C4/SearchMarc.pm,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -r1.12 -r1.13
*** SearchMarc.pm       14 Apr 2004 19:45:48 -0000      1.12
--- SearchMarc.pm       16 Apr 2004 07:28:22 -0000      1.13
***************
*** 53,60 ****
  
  @ISA = qw(Exporter);
! @EXPORT = qw(&catalogsearch &findseealso);
  
  # make all your functions, whether exported or not;
  
  sub findseealso {
        my ($dbh, $fields) = @_;
--- 53,78 ----
  
  @ISA = qw(Exporter);
! @EXPORT = qw(&catalogsearch &findseealso &findsuggestion);
  
  # make all your functions, whether exported or not;
  
+ sub findsuggestion {
+       my ($dbh,$values) = @_;
+       my $sth = $dbh->prepare("SELECT count( * ) AS total, word FROM 
marc_word WHERE sndx_word = soundex( ? ) AND word <> ? GROUP BY word ORDER BY 
total DESC");
+       my @results;
+       for(my $i = 0 ; $i <= $#{$values} ; $i++) {
+               if (length(@$values[$i]) >=5) {
+                       $sth->execute(@$values[$i],@$values[$i]);
+                       my $resfound = 1;
+                       my @resline;
+                       while ((my ($count,$word) = $sth->fetchrow) and 
$resfound <=10) {
+                               push @results, "@$values[$i]|$word|$count";
+ #                             address@hidden = address@hidden;
+                               $resfound++;
+                       }
+               }
+       }
+       return address@hidden;
+ }
  sub findseealso {
        my ($dbh, $fields) = @_;




reply via email to

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