X-Git-Url: http://git.rot13.org/?p=BackupPC.git;a=blobdiff_plain;f=lib%2FBackupPC%2FSearch%2FKinoSearch.pm;h=8b9c51d3b66fe44ee8d0269a35a924e8bf4c271c;hp=d7f7868e6e94addca0ed6aa6b9bc6b1728307263;hb=fab4f90be3ae7eeee756410299a48b92b1b1b2ae;hpb=d777459c88e0a9ecf8d012f0cdffd63efe3244fe diff --git a/lib/BackupPC/Search/KinoSearch.pm b/lib/BackupPC/Search/KinoSearch.pm index d7f7868..8b9c51d 100644 --- a/lib/BackupPC/Search/KinoSearch.pm +++ b/lib/BackupPC/Search/KinoSearch.pm @@ -15,9 +15,14 @@ sub new { my ( $class ) = @_; my $schema = KinoSearch::Plan::Schema->new; + + + my $case_folder = KinoSearch::Analysis::CaseFolder->new; + my $tokenizer = KinoSearch::Analysis::Tokenizer->new; my $polyanalyzer = KinoSearch::Analysis::PolyAnalyzer->new( - language => 'en', + analyzers => [ $case_folder, $tokenizer ], ); + my $ft_type = KinoSearch::Plan::FullTextType->new( analyzer => $polyanalyzer, ); @@ -36,7 +41,7 @@ sub new { / ); $schema->spec_field( name => $_, type => $string_type ) foreach ( qw/ - _uri filepath hname sname + _uri _file_path_split filepath hname sname /); # $schema->spec_field( name => '_doc', type => $blob_type ); @@ -77,9 +82,12 @@ sub exists { sub add_doc { my ($self,$row) = @_; - warn "XXX ",dump($row); - $row->{_uri} = $row->{hname} . ':' . $row->{sname} . '#' . $row->{backupnum} . ' ' . $row->{filepath}; + my $path = $row->{filepath}; + $path =~ s/(.)/$1 /g; # XXX our tokenize + $row->{_file_path_split} = $path; + + warn "XXX ",dump($row) if $ENV{DEBUG}; $self->{indexer}->add_doc( $row );