The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

TM::Corpus::SearchAble::Plucene - Topic Maps, Trait for searching, Plucene implementation

SYNOPSIS

   use TM;
   my $tm = ....                               # get map from somewhere

   use TM::Corpus;                             # see this package
   my $co = new TM::Corpus (map => $tm);       # bind map with document repository
   $co->update;                                # mandatory
   $co->harvest;                               # optional

                                               # attach searchable behaviour
   Class::Trait->apply ($co => 'TM::Corpus::SearchAble::Plucene');

   $co->index ('/where/store/index/');         # build index

   warn Dumper $co->search ('content:"BBB"');  # search for something

DESCRIPTION

This trait extends an existing document corpus by search functionality. In that it leverages Plucene. It follows the abstract trait outlined in TM::Corpus::SearchAble, so the documentation there applies.

INTERFACE

directory

Getter/setter method for the file location of the index. In this case this will be a directory (which will be created if it does not exist).

index

$co->index;

This method creates/updates the index.

@results = @{ $co->search ($phrase) }

This method takes a search phrase as input and delivers a list (reference) of results.

The search phrase will by default search in the content of the documents in the corpus.

Example:

   $co->search ('something');    # will search in content

   $co->search ('content:"something"'); # same

COPYRIGHT AND LICENSE

Copyright 200[8] by Robert Barta, <drrho@cpan.org>

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.