4 |
use strict; |
use strict; |
5 |
|
|
6 |
use Carp; |
use Carp; |
7 |
use jsFind 0.04; |
use jsFind 0.06; |
8 |
use Log::Log4perl qw(get_logger :levels); |
use Log::Log4perl qw(get_logger :levels); |
9 |
|
|
10 |
=head1 NAME |
=head1 NAME |
29 |
log => 'log4perl.conf', |
log => 'log4perl.conf', |
30 |
); |
); |
31 |
|
|
32 |
C<index> is path to location where jsFind index should be created. |
C<index_path> is path to location where jsFind index should be created. |
33 |
|
|
34 |
C<keys> is optional parametar which specify number of keys in each node |
C<keys> is optional parametar which specify number of keys in each node |
35 |
(which has to be even number). Default is 10. |
(which has to be even number). Default is 10. |
102 |
carp "no headline for ",$args->{'path'}," ?"; |
carp "no headline for ",$args->{'path'}," ?"; |
103 |
$args->{'headline'} = "no headline: ".$args->{'path'}; |
$args->{'headline'} = "no headline: ".$args->{'path'}; |
104 |
} |
} |
105 |
return unless (defined($args->{'words'})); |
if (! defined($args->{'words'})) { |
106 |
|
$log->warn("no words to insert for headline ",$args->{'headline'}); |
107 |
|
return; |
108 |
|
} |
109 |
|
|
110 |
my $words = $args->{'words'}; |
my $words = lc($args->{'words'}); |
111 |
|
|
112 |
# chop leading and trailing spaces |
# chop leading and trailing spaces |
113 |
$words =~ s/^\s+//; |
$words =~ s/^\s+//; |
114 |
$words =~ s/\s+$//; |
$words =~ s/\s+$//; |
115 |
|
|
116 |
|
my @words = split(/\s+/,$words); |
117 |
|
|
118 |
my %usage; |
my %usage; |
119 |
foreach (split(/\s+/,$words)) { |
foreach (@words) { |
120 |
$usage{$_}++; |
$usage{$_}++; |
121 |
} |
} |
122 |
|
|
126 |
" path: ",$args->{'path'} |
" path: ",$args->{'path'} |
127 |
); |
); |
128 |
|
|
129 |
foreach my $word (keys %usage) { |
foreach my $word (@words) { |
130 |
|
|
131 |
$self->tree($args->{'index_name'})->B_search( |
$self->tree($args->{'index_name'})->B_search( |
132 |
Key => $word, |
Key => $word, |
169 |
|
|
170 |
$log->debug("saving index '$index_name' xml files to '$path'"); |
$log->debug("saving index '$index_name' xml files to '$path'"); |
171 |
|
|
172 |
$self->tree($index_name)->to_jsfind($path,'ISO-8859-2','UTF-8'); |
$self->tree($index_name)->to_jsfind( |
173 |
|
dir => $path, |
174 |
|
data_codepage => 'ISO-8859-2', |
175 |
|
index_codepage => 'UTF-8' |
176 |
|
); |
177 |
|
|
178 |
if ($log->is_debug()) { |
if ($log->is_debug()) { |
179 |
my $dot_file = $index_name.".dot"; |
my $dot_file = $index_name.".dot"; |