Hi,
While attempting to modify an index I found that I missed a function
to delete a document by it's ID through Lucy::Index::Indexer (only
delete_by_term and delete_by_query are available).
Please find attached a patch - is this OK for inclusion?
--
Best regards,
Dag Lem
diff -ru Lucy-0.3.2/core/Lucy/Index/Indexer.c Lucy-0.3.2-delete_by_doc_id/core/Lucy/Index/Indexer.c
--- Lucy-0.3.2/core/Lucy/Index/Indexer.c 2012-07-10 16:06:40.000000000 +0200
+++ Lucy-0.3.2-delete_by_doc_id/core/Lucy/Index/Indexer.c 2013-01-14 15:46:48.586827000 +0100
@@ -303,6 +303,11 @@
}
void
+Indexer_delete_by_doc_id(Indexer *self, int32_t doc_id) {
+ DelWriter_Delete_By_Doc_ID(self->del_writer, doc_id);
+}
+
+void
Indexer_add_index(Indexer *self, Obj *index) {
Folder *other_folder = NULL;
IndexReader *reader = NULL;
diff -ru Lucy-0.3.2/core/Lucy/Index/Indexer.cfh Lucy-0.3.2-delete_by_doc_id/core/Lucy/Index/Indexer.cfh
--- Lucy-0.3.2/core/Lucy/Index/Indexer.cfh 2012-07-10 16:06:40.000000000 +0200
+++ Lucy-0.3.2-delete_by_doc_id/core/Lucy/Index/Indexer.cfh 2013-01-16 09:16:02.654919038 +0100
@@ -112,6 +112,13 @@
public void
Delete_By_Query(Indexer *self, Query *query);
+ /** Mark the document identified by the supplied document ID as deleted.
+ *
+ * @param doc_id A L<Document|Lucy::Document::Doc> ID.
+ */
+ public void
+ Delete_By_Doc_ID(Indexer *self, int32_t doc_id);
+
/** Optimize the index for search-time performance. This may take a
* while, as it can involve rewriting large amounts of data.
*/
diff -ru Lucy-0.3.2/lib/Lucy/Index/Indexer.pm Lucy-0.3.2-delete_by_doc_id/lib/Lucy/Index/Indexer.pm
--- Lucy-0.3.2/lib/Lucy/Index/Indexer.pm 2012-07-10 16:06:40.000000000 +0200
+++ Lucy-0.3.2-delete_by_doc_id/lib/Lucy/Index/Indexer.pm 2013-01-15 16:29:56.270415005 +0100
@@ -184,6 +184,7 @@
qw(
Delete_By_Term
Delete_By_Query
+ Delete_By_Doc_ID
Add_Index
Commit
Prepare_Commit
@@ -201,6 +202,7 @@
prepare_commit
delete_by_term
delete_by_query
+ delete_by_doc_id
)
],
synopsis => $synopsis,
diff -ru Lucy-0.3.2/lib/Lucy/Index/Indexer.pod Lucy-0.3.2-delete_by_doc_id/lib/Lucy/Index/Indexer.pod
--- Lucy-0.3.2/lib/Lucy/Index/Indexer.pod 2012-07-10 16:06:40.000000000 +0200
+++ Lucy-0.3.2-delete_by_doc_id/lib/Lucy/Index/Indexer.pod 2013-01-16 09:26:34.497046861 +0100
@@ -192,6 +192,18 @@
=back
+=head2 delete_by_doc_id(doc_id)
+
+Mark the document identified by the supplied document ID as deleted.
+
+=over
+
+=item *
+
+B<doc_id> - A L<Document|Lucy::Document::Doc> ID.
+
+=back
+
=head1 INHERITANCE