# Libre10
# Copyright 2013 yukikaze
#
-my $confpath ="";
-if (-e "libre10.conf"){
+my $confpath = "";
+if ( -e "libre10.conf" ) {
$confpath = "libre10.conf";
-}else {
+}
+else {
$confpath = "/etc/libre10.conf";
}
$confdata = YAML::XS::LoadFile($confpath);
-my $q = new CGI;
-my $mode = "";
-my $search_text=$q->param("search_text");
-$mode = $q->param("mode");
-$width = $q->param("width");
+my $q = new CGI;
+my $mode = "";
+my $search_text = $q->param("search_text");
+$mode = $q->param("mode");
+$width = $q->param("width");
$height = $q->param("height");
-my $url = $confdata->{solrurl};
+my $url = $confdata->{solrurl};
my $solr = WebService::Solr->new($url);
-print $q->header(-type=>"text/html",-charset=>"utf-8");
-print $q->start_html(-title=>"rec10 pdf search",-lang=>"ja-JP");
+print $q->header( -type => "text/html", -charset => "utf-8" );
+print $q->start_html( -title => "rec10 pdf search", -lang => "ja-JP" );
print "<form action=\"pdfsearch.pl\" method=\"get\">";
print "<div align=center><H1>Libre10 pdf search</H1></div>";
print "<div align=center><p><input name='search_text' value='' style='width:200px'\/>";
print "<input type=\"submit\" value=\"search\"/></p></div><hr>";
+
#print Dumper($confdata->{solrurl});
#print $search_text;
#print length $search_text;
-if (length $search_text>0){
+if ( length $search_text > 0 ) {
print "<p><h3>";
print $search_text;
- print +"の検索結果</h3></p>";
- my $query = WebService::Solr::Query->new({text=>decode('utf-8',$search_text)});
- my $response = $solr->search($query,{
- 'rows' => '300',
- 'group.limit'=>'3000',
- 'group.field'=>'title_group',
- 'group'=>true,
- 'hl'=>true,'hl.fl'=>'text',
- 'hl.simple.pre'=>"<font color=red><em>",
- 'hl.simple.post'=>"</em></font>",
- 'hl.fragsize'=>'300',
- 'hl.fragmenter'=>'gap',
- 'hl.alternateField'=>'text',
- 'hl.maxAlternateFieldLength'=>'300',
- 'hl.useFastVectorHighlighter'=>true,
- });
+ print +"の検索結果</h3></p>";
+ my $query = WebService::Solr::Query->new(
+ { text => decode( 'utf-8', $search_text ) } );
+ my $response = $solr->search(
+ $query,
+ {
+ 'rows' => '300',
+ 'group.limit' => '3000',
+ 'group.field' => 'title_group',
+ 'group' => true,
+ 'hl' => true,
+ 'hl.fl' => 'text',
+ 'hl.simple.pre' => "<font color=red><em>",
+ 'hl.simple.post' => "</em></font>",
+ 'hl.fragsize' => '300',
+ 'hl.fragmenter' => 'gap',
+ 'hl.alternateField' => 'text',
+ 'hl.maxAlternateFieldLength' => '300',
+ 'hl.useFastVectorHighlighter' => true,
+ }
+ );
+
#my $response = $solr->search($query,{'rows' => '100','fl'=>'title,text,page,path'});
#my $response = $solr->search($query);
- #print "texst";
- my $hits = $response->content;
- my %hits = %$hits;
+ #print "texst";
+ my $hits = $response->content;
+ my %hits = %$hits;
my $response_header = $hits{grouped}{title_group}{groups};
my @response_header = @$response_header;
+
#print Dumper(@response_header);
#print Dumper($response->content->{highlighting});
#print Dumper($response->content->{highlighting});
- foreach my $group (@response_header){
+ foreach my $group (@response_header) {
my $textarray = $group->{doclist}{docs};
my @textarray = @$textarray;
+
#print Dumper($group);
- &printGroupResults($group->{doclist}{numFound},
- $textarray[0]->{title_group},$search_text,$textarray,
- $response->content->{highlighting}
+ &printGroupResults(
+ $group->{doclist}{numFound},
+ $textarray[0]->{title_group},
+ $search_text, $textarray, $response->content->{highlighting}
);
}
-}else{
+}
+else {
#print "<a href=pdfsearch.pl?mode=$mode&width=1600>for Tablet</a><br>\n";
print "<div align=center>";
print "<a href=pdfsearch.pl?mode=mobile&width=1024&height=1280>for narrow band</a><br>\n";
print "<a href=pdfsearch.pl?mode=mobile&width=1600&height=2560>for Tablet</a><br>\n";
+
#print "<a href=pdfsearch.pl?mode=$mode&width=540>SmartPhone(w540)</a><br>\n";
print "<a href=pdfsearch.pl?mode=mobile&width=1080&height=1920>for SmartPhone</a><br>\n";
print "<a href=pdfsearch.pl?mode=mobile&width=1600&height=2100>for Tablet retina</a><br>\n";
print "<a href=pdfsearch.pl?mode=''>for PC(default)</a><br>\n";
print "</div>";
}
-print "<input type='hidden' name='mode' value=" . $mode . " >\n";
+print "<input type='hidden' name='mode' value=" . $mode . " >\n";
print "<input type='hidden' name='height' value=" . $height . " >\n";
-print "<input type='hidden' name='width' value=" . $width . " >\n";
+print "<input type='hidden' name='width' value=" . $width . " >\n";
+
#print $url;
#print Dumper($mode);
print "</form>";
print $q->end_html;
-sub printGroupResults(){
- ($hitsnum,$title,$search_text,$hits,$hits_hl)=@_;
+sub printGroupResults() {
+ ( $hitsnum, $title, $search_text, $hits, $hits_hl ) = @_;
+
#print Dumper($hits);
- print "<p><h2>" . $title . "</h2> - " . $hitsnum . "件の合致<br>";
- foreach $doc (@$hits){
+ print "<p><h2>$title</h2> - $hitsnum 件の合致<br>";
+ foreach $doc (@$hits) {
+
#print $doc->{text};
- ($pagenum,$path,$linkpath)=($doc->{page},$doc->{path},$doc->{path});
- print "page " . $pagenum ."<br>";
+ ( $pagenum, $path, $linkpath ) =
+ ( $doc->{page}, $doc->{path}, $doc->{path} );
+ print "page " . $pagenum . "<br>";
+
#print Dumper($hits_hl->{$doc->{id}}{text});
- print " " . $hits_hl->{$doc->{id}}{text}[0] . "<br>";
+ print " " . $hits_hl->{ $doc->{id} }{text}[0] . "<br>";
print "<a href=\"htmlserver.pl?pdfpath=$path";
print "&pagenum=$pagenum&mode=$mode&width=$width&height=$height\">";
print "該当ページを見る";
print "</a>";
- print "</p>\n";
+ print "</p>\n";
}
}