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

KinoSearch1::Searcher - execute searches

Caching A Searcher

       When  a  Searcher  is created, a small portion of the invindex is loaded into memory.  For large document
       collections, this startup time may become noticeable, in which case reusing the  searcher  is  likely  to
       speed  up your search application.  Caching a Searcher is especially helpful when running a high-activity
       app under mod_perl.

       Searcher objects always represent a snapshot of an invindex as it existed when the Searcher was  created.
       If  you  want  the search results to reflect modifications to an invindex, you must create a new Searcher
       after the update process completes.

Description

       Use the Searcher class to perform queries against an invindex.

License, Disclaimer, Bugs, Etc.

       See KinoSearch1 version 1.01.

perl v5.40.0                                       2024-10-20                         KinoSearch1::Searcher(3pm)

Methods

new
           my $searcher = KinoSearch1::Searcher->new(
               invindex => $invindex,
               analyzer => $analyzer,
           );

       Constructor.  Takes two labeled parameters, both of which are required.

       •   invindex - can be either a path to an invindex, or a KinoSearch1::Store::InvIndex object.

       •   analyzer  -  An object which subclasses KinoSearch1::Analysis::Analyer, such as a PolyAnalyzer.  This
           must be identical to the Analyzer used at index-time, or the results won't match up.

   search
           my $hits = $searcher->search(
               query  => $query,  # required
               filter => $filter, # default: undef (no filtering)
           );

       Process a search and return a Hits object.  search() expects labeled hash-style parameters.

       •   query - Can be either an object which subclasses KinoSearch1::Search::Query, or a query  string.   If
           it's a query string, it will be parsed using a QueryParser and a search will be performed against all
           indexed  fields  in  the  invindex.   For more sophisticated searching, supply Query objects, such as
           TermQuery and BooleanQuery.

       •   filter - Must be a KinoSearch1::Search::QueryFilter.  Search results will be limited  to  only  those
           documents which pass through the filter.

Name

       KinoSearch1::Searcher - execute searches

Synopsis

           my $analyzer = KinoSearch1::Analysis::PolyAnalyzer->new(
               language => 'en',
           );

           my $searcher = KinoSearch1::Searcher->new(
               invindex => $invindex,
               analyzer => $analyzer,
           );
           my $hits = $searcher->search( query => 'foo bar' );

See Also