Search::Indexer::Incremental::MD5 - Incrementally index your files
use File::Find::Rule ; use Readonly ; Readonly my $DEFAUT_MAX_FILE_SIZE_INDEXING_THRESHOLD => 300 << 10 ; # 300KB my $indexer = Search::Indexer::Incremental::MD5::Indexer->new ( USE_POSITIONS => 1, INDEX_DIRECTORY => 'text_index', get_perl_word_regex_and_stopwords(), ) ; my @files = File::Find::Rule ->file() ->name( '*.pm', '*.pod' ) ->size( "<=$DEFAUT_MAX_FILE_SIZE_INDEXING_THRESHOLD" ) ->not_name(qr[auto | unicore | DateTime/TimeZone | DateTime/Locale]) ->in('.') ; indexer->add_files(@files) ; indexer->add_files(@more_files) ; indexer = undef ; my $search_string = 'find_me' ; my $searcher = eval { Search::Indexer::Incremental::MD5::Searcher->new ( USE_POSITIONS => 1, INDEX_DIRECTORY => 'text_index', get_perl_word_regex_and_stopwords(), ) } or croak "No full text index found! $@\n" ; my $results = $searcher->search($search_string) ; # sort in decreasing score order my @indexes = map { $_->[0] } reverse sort { $a->[1] <=> $b->[1] } map { [$_, $results->[$_]{SCORE}] } 0 .. $#$results ; for (@indexes) { print {* STDOUT} "$results->[$_]{PATH} [$results->[$_]{SCORE}].\n" ; } $searcher = undef ;
This module implements an incremental text indexer and searcher based on Search::Indexer.
Given a list of files, this module will allow you to create an indexed text database that you can later query for matches. You can also use the siim command line application installed with this module.
Arguments
$index_directory - location of the index databases
Returns - A hash reference. Keys represent an information field.
Exceptions - Error opening the indexing database
Removes all the index databases in the passed directory
Returns - Nothing
Exceptions - Can't remove index databases.
Displays all the files matching the search query.
Exceptions - None
Adds files to index, if the files are modified, and displays their name.
Remove the passed files from the index
check the files in the index
Returns the MD5 of the $file argument.
Returns - A string containing the file md5
Exceptions - fails if the file can't be open
None so far.
Nadim ibn hamouda el Khemir CPAN ID: NKH mailto: nadim@cpan.org
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
You can find documentation for this module with the perldoc command.
perldoc Search::Indexer::Incremental::MD5
You can also look for information at:
AnnoCPAN: Annotated CPAN documentation
http://annocpan.org/dist/Search-Indexer-Incremental-MD5
RT: CPAN's request tracker
Please report any bugs or feature requests to L <bug-search-indexer-incremental-md5@rt.cpan.org>.
We will be notified, and then you'll automatically be notified of progress on your bug as we make changes.
Search CPAN
http://search.cpan.org/dist/Search-Indexer-Incremental-MD5
Search::Indexer
Search::Indexer::Incremental::MD5::Indexer and Search::Indexer::Incremental::MD5::Searcher
To install Search::Indexer::Incremental::MD5, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Search::Indexer::Incremental::MD5
CPAN shell
perl -MCPAN -e shell install Search::Indexer::Incremental::MD5
For more information on module installation, please visit the detailed CPAN module installation guide.