Hi Nikolaos,
LARQ as in ARQ v2.8.5 does not currently support deletion of entries when you
remove Statements from a Model.
We are planning to take LARQ out of ARQ and put it into a separate module.
You can have a preview of it, here:
https://jena.svn.sourceforge.net/svnroot/jena/LARQ/trunk/
That does have implementation for unindexStatement methods, for example:
https://jena.svn.sourceforge.net/svnroot/jena/LARQ/trunk/src/main/java/org/apache/jena/larq/IndexBuilderLiteral.java
@Override
public void unindexStatement(Statement s)
{
if ( ! indexThisStatement(s) )
return ;
if ( s.getObject().isLiteral() )
{
// we use the Model as reference counting
StmtIterator iter = s.getModel().listStatements((Resource)null,
(Property)null, s.getObject());
if ( ! iter.hasNext() ) {
Node node = s.getObject().asNode() ;
if ( indexThisLiteral(s.getLiteral())) {
index.unindex(node, node.getLiteralLexicalForm()) ;
}
}
}
}
When we need to delete a Lucene document, we need to be sure there are no other
statements with the same literal before deleting the document.
Since, it's not possible to modify fields in a Lucene document, I decided to use
the Jena model as source of reference counting and I delete the Lucene document
if and only if there are no other statements with the same literal.
If you need support for deletetion of entries, I recommend you to give the
separate
LARQ module a try.
Let me know if you experience problems with it,
Paolo
Nikolaos Abatzis wrote:
All:
Looking at the sources for ARQ-2.8.5 I found the following in IndexBuilderModel
/** Remove index information */
public void unindexStatement(Statement s)
{ throw new java.lang.UnsupportedOperationException("unindexStatement") ; }
How does one then deletes entries from a Lucene Index, based on Statement
removal?
I apologize if I am missing something obvious :-(
Please do not hesitate to contact me if you need additional information. Thank
you.
Regards,
Nikolaos Abatzis
New River Systems Corporation
1890 Preston White Drive, Suite 240
Reston, VA 20191