The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Catmandu::Searchable - Base class for all searchable Catmandu classes

SYNOPSIS

    my $store = Catmandu::Store::Solr->new();

    # Return one page of search results (page size = 1000)
    my $hits  = $store->bag->search(
           query => 'dna' ,
           start => 0 ,
           limit => 100 ,
           sort  => 'title desc',
                );

    # Return all the search results as iterator
    my $it    = $store->bag->searcher(query => 'dna');
    $it->each(sub { ...});

    $store->bag->delete_by_query(query => 'dna');

METHODS

search(query => $query, start => $start, page => $page, limit => $num, sort => $sort, cql_query => $cql)

Search the database and returns a Catmandu::Hits on success. The Hits represents one result page of at most $num results. The $query and $sort should implement the query and sort syntax of the underlying search engine. If the CQL language is supported by the Store, then optionally a $cql_query search can be excuted on the Searchable.

Optionally provide the index of the first result using the start option, or the starting page using the page option. The number of records in a result page can be set using the limit option. Sorting options are being sent verbatim to the underlying search engine.

searcher(query => $query, start => $start, limit => $num, sort => $sort, cql_query => $cql)

Search the database and return a Catmandu::Iterable on success. This iterator can be used to loop over the complete result set. The $query and $sort should implement the query and sort syntax of the underlying search engine. If the CQL language is supported by the Store, then optionally a $cql_query search can be excuted on the Searchable.

Optionally provide the index of the first result using the start option. The number of records in a page can be set using the limit option. Sorting options are being sent verbatim to the underlying search engine.

delete_by_query(query => $query)

Delete items from the database that match $query

SEE ALSO

Catmandu::Hits, Catmandu::Paged