Author image Marvin Humphrey
and 1 contributors


KinoSearch::Searcher - Execute searches against a single index.


    my $searcher = KinoSearch::Searcher->new( index => '/path/to/index' );
    my $hits = $searcher->hits(
        query      => 'foo bar',
        offset     => 0,
        num_wanted => 100,


Use the Searcher class to perform search queries against an index. (For searching multiple indexes at once, see PolySearcher).


new( [labeled params] )

    my $searcher = KinoSearch::Searcher->new( index => '/path/to/index' );
  • index - Either a string filepath, a Folder, or an IndexReader.


hits( [labeled params] )

Return a Hits object containing the top results.

  • query - Either a Query object or a query string.

  • offset - The number of most-relevant hits to discard, typically used when "paging" through hits N at a time. Setting offset to 20 and num_wanted to 10 retrieves hits 21-30, assuming that 30 hits can be found.

  • num_wanted - The number of hits you would like to see after offset is taken into account.

  • sort_spec - A KinoSearch::Search::SortSpec, which will affect how results are ranked and returned.

collect( [labeled params] )

Iterate over hits, feeding them into a HitCollector.

  • query - A Query.

  • collector - A HitCollector.


Return the maximum number of docs in the collection represented by the Searchable, which is also the highest possible doc id. Deleted docs are included in this count.

doc_freq( [labeled params] )

Return the number of documents which contain the term in the given field.

  • field - Field name.

  • term - The term to look up.

fetch_doc( [labeled params] )

Retrieve a document. Throws an error if the doc id is out of range.

  • doc_id - A document id.

  • score - A floating point score.

  • offset - Amount to be added to the doc_id if this Searchable is a subcomponent of another.


Accessor for the object's schema member.


Accessor for the object's reader member.


KinoSearch::Searcher isa KinoSearch::Search::Searchable isa KinoSearch::Obj.


Copyright 2005-2009 Marvin Humphrey

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