logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Plucene - A Perl port of the Lucene search engine

Authors

       Initially ported by Simon Cozens and Marc Kerr.

       Currently maintained by Tony Bowden and Marty Pauley.

       Original Java Lucene by Doug Cutting and others.

Compatibility

       For the most part Lucene and Plucene indexes are created in the same manner. However, due to current
       implementation details, the indexes will generally not be compatible. It should theoretically be possible
       to convert index files in either direction between Plucene and Lucene, but no tools are currently
       provided to do so.

       As Plucene is still undergoing development, we cannot guarantee index format compatibility across
       releases. If you're using Plucene in production code, you need to ensure that you can recreate the
       indexes.

Description

       Plucene is a fully-featured and highly customizable search engine toolkit based on the Lucene API.
       (<http://jakarta.apache.org/lucene>)

       It is not, in and of itself, a functional search engine - you are expected to subclass and tie all the
       pieces together to suit your own needs.  The synopsis above gives a rough indication of how to use the
       engine in simple cases. See Plucene::Simple for one example of tying it all together.

       The tests shipped with Plucene provide a variety of other examples of how use this.

Documentation

       Although most of the Perl modules should be well documented, the Perl API mirrors Lucene's to such an
       extent that reading Lucene's documentation will give you a good idea of how to do more advanced stuff
       with Plucene. See particularly the ONJava articles
       <http://www.onjava.com/pub/a/onjava/2003/01/15/lucene.html> and
       <http://www.onjava.com/pub/a/onjava/2003/03/05/lucene.html>. These are brilliant introductions to the
       concepts surrounding Lucene, how it works, and how to extend it.

Extensions

       Plucene comes shipped with some default Analyzers. However it is expected that users will want to create
       Analyzers to meet their own needs. To avoid namespace corruption, anyone releasing such Analyzers to CPAN
       (which is encouraged!) should place them in the namespace Plucene::Plugin::Analyzer::.

License

       This software is licensed under the same terms as Perl itself.

perl v5.36.0                                       2022-12-04                                       Plucene(3pm)

Mailing List

       Bug  reports,  patches, queries, discussion etc should be addressed to the mailing list. More information
       on the list can be found at:

       <http://www.kasei.com/mailman/listinfo/plucene>

Missing Features

       The following features have not yet been fully implemented:

       •   Wildcard searches

       •   Range searches

Name

       Plucene - A Perl port of the Lucene search engine

Synopsis

CreateDocumentsbyaddingFields:
               my $doc = Plucene::Document->new;
               $doc->add(Plucene::Document::Field->Text(content => $content));
               $doc->add(Plucene::Document::Field->Text(author => "Your Name"));

   ChooseYourAnalyserandadddocumentstoanIndexWriter
               my $analyzer = Plucene::Analysis::SimpleAnalyzer->new();
               my $writer = Plucene::Index::Writer->new("my_index", $analyzer, 1);

               $writer->add_document($doc);
               undef $writer; # close

       SearchbybuildingaQuery

               my $parser = Plucene::QueryParser->new({
                       analyzer => Plucene::Analysis::SimpleAnalyzer->new(),
                       default  => "text" # Default field for non-specified queries
               });
               my $query = $parser->parse('author:"Your Name"');

       ThenpasstheQuerytoanIndexSearcherandcollecthits

               my $searcher = Plucene::Search::IndexSearcher->new("my_index");

               my @docs;
               my $hc = Plucene::Search::HitCollector->new(collect => sub {
                       my ($self, $doc, $score) = @_;
                       push @docs, $searcher->doc($doc);
               });

               $searcher->search_hc($query => $hc);

Thanks

       The initial development and ongoing maintenance of  Plucene  has  been  funded  and  supported  by  Kasei
       <http://www.kasei.com/>

See Also