[cgi-wiki-dev] Plucene search backend

Kate L Pugh cgi-wiki-dev@earth.li
Sat, 26 Jun 2004 03:26:39 +0100


I wonder if any of you are lovely enough to have a look at this for
me.  I've been trying to get Simon's Plucene search backend to work,
but I'm hitting a problem that I can't seem to figure out.

Take a look at
  http://the.earth.li/~kake/code/CGI-Wiki-0.55_01.tar.gz

(If you don't have Plucene::Simple installed then the plucene.t test
 in there will fail.  This is not the problem.)

017_delete_version.t is failing with the Plucene backend and I really
can't figure out why.  The minimal test case that I can get to fail is
the final test in plucene.t, so take a look at that first.

If I comment out any one of the node writes, the test passes.  If I
add extra node writes, the test passes.  If I delete one of the nodes
entirely instead of just a single version, the test passes.

Also, if I revert the delete_node sub of CGI::Wiki back to the one in
0.54, ie change

    if ( my $search = $self->search_obj ) {
        # Remove old data.
        $search->delete_node( $args{name} );
        # If we have any versions left, index the new latest version.
        my $new_current_content = $self->retrieve_node( $args{name } );
        if ( $new_current_content ) {
            $search->index_node( $args{name}, $new_current_content );
        }
    }

back to

    if ( my $search = $self->search_obj ) {
        my $new_current_content = $self->retrieve_node( $args{name } );
        if ( $new_current_content ) {
            $search->index_node( $args{name}, $new_current_content );
        } else {
            $search->delete_node( $args{name} );
        }
    }

then the test passes - but this isn't useful because I made that
change in order to ensure that old versions are removed from the
search indexes (ie to make other bits of 017_delete_version.t pass).

Help?


Kake