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

NAME

KinoSearch::Index::DeletionsWriter - Abstract base class for marking documents as deleted.

DEPRECATED

The KinoSearch code base has been assimilated by the Apache Lucy project. The "KinoSearch" namespace has been deprecated, but development continues under our new name at our new home: http://lucy.apache.org/

SYNOPSIS

    my $polyreader  = $del_writer->get_polyreader;
    my $seg_readers = $polyreader->seg_readers;
    for my $seg_reader (@$seg_readers) {
        my $count = $del_writer->seg_del_count( $seg_reader->get_seg_name );
        ...
    }

DESCRIPTION

Subclasses of DeletionsWriter provide a low-level mechanism for declaring a document deleted from an index.

Because files in an index are never modified, and because it is not practical to delete entire segments, a DeletionsWriter does not actually remove documents from the index. Instead, it communicates to a search-time companion DeletionsReader which documents are deleted in such a way that it can create a Matcher iterator.

Documents are truly deleted only when the segments which contain them are merged into new ones.

ABSTRACT METHODS

delete_by_term( [labeled params] )

Delete all documents in the index that index the supplied term.

  • field - The name of an indexed field. (If it is not spec'd as indexed, an error will occur.)

  • term - The term which identifies docs to be marked as deleted. If field is associated with an Analyzer, term will be processed automatically (so don't pre-process it yourself).

delete_by_query(query)

Delete all documents in the index that match query.

updated()

Returns true if there are updates that need to be written.

seg_del_count(seg_name)

Return the number of deletions for a given segment.

  • seg_name - The name of the segment.

INHERITANCE

KinoSearch::Index::DeletionsWriter isa KinoSearch::Index::DataWriter isa KinoSearch::Object::Obj.

COPYRIGHT AND LICENSE

Copyright 2005-2011 Marvin Humphrey

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