Package org.eclipse.rdf4j.sail.lucene
Interface SearchIndex
- All Known Implementing Classes:
AbstractLuceneIndex,AbstractSearchIndex,ElasticsearchIndex,LuceneIndex,LuceneIndexNIOFS,SolrIndex
public interface SearchIndex
A SearchIndex is a one-stop-shop abstraction of a Lucene index. It takes care of proper synchronization of
IndexReaders, IndexWriters and IndexSearchers in a way that is suitable for a LuceneSail.
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionbooleanReturns whether the provided literal is accepted by the LuceneIndex to be indexed.voidaddDocuments(Resource subject, List<Statement> statements) Add a complete Lucene Document based on these statements.Do not search for an existing document with the same subject id.voidaddRemoveStatements(Collection<Statement> added, Collection<Statement> removed) Add many statements at the same time, remove many statements at the same time.Ordering by resource has to be done inside this method.voidaddStatement(Statement statement) Indexes the specified Statement.This should be called from within a begin-commit-rollback block.voidbegin()Begins a transaction.voidclear()Clears the indexes.voidclearContexts(Resource... contexts) This should be called from within a begin-commit-rollback block.voidcommit()Commits any changes done to the LuceneIndex since the last commit.The semantics is synchronous to SailConnection.commit(), i.e.evaluate(SearchQueryEvaluator query) voidinitialize(Properties parameters) booleanisGeoField(String propertyName) Returns true if the given property contains a geometry.booleanisIndexedTypeStatement(Statement statement) Returns true if the given statement is a type statement of the right type, seeLuceneSail.INDEXEDTYPESto use.booleanis theLuceneSail.INDEXEDTYPESparameter set for this index.booleanisTypeStatement(Statement statement) Returns true if the given statement is a type statement, seeLuceneSail.INDEXEDTYPESto use.voidremoveStatement(Statement statement) Removes the specified Statement from the indexes.This should be called from within a begin-commit-rollbackvoidrollback()voidshutDown()
-
Method Details
-
initialize
- Throws:
Exception
-
evaluate
- Throws:
SailException
-
shutDown
- Throws:
IOException
-
accept
Returns whether the provided literal is accepted by the LuceneIndex to be indexed. It for instance does not make much since to index xsd:float.- Parameters:
literal- the literal to be accepted- Returns:
- true if the given literal will be indexed by this LuceneIndex
-
isGeoField
Returns true if the given property contains a geometry.- Parameters:
propertyName-- Returns:
- boolean
-
isTypeStatement
Returns true if the given statement is a type statement, seeLuceneSail.INDEXEDTYPESto use. This method should return false ifisTypeFilteringEnabled()returns false.- Parameters:
statement- statement- Returns:
- boolean
-
isTypeFilteringEnabled
boolean isTypeFilteringEnabled()is theLuceneSail.INDEXEDTYPESparameter set for this index.- Returns:
- boolean
-
isIndexedTypeStatement
Returns true if the given statement is a type statement of the right type, seeLuceneSail.INDEXEDTYPESto use. This method should return false ifisTypeFilteringEnabled()returns false.- Parameters:
statement- statement- Returns:
- boolean
-
getIndexedTypeMapping
- Returns:
- the accepted types for a particular predicate map (predicate -> [objects])
-
begin
Begins a transaction.- Throws:
IOException
-
commit
Commits any changes done to the LuceneIndex since the last commit.The semantics is synchronous to SailConnection.commit(), i.e. the LuceneIndex should be committed/rolled back whenever the LuceneSailConnection is committed/rolled back.- Throws:
IOException
-
rollback
- Throws:
IOException
-
addStatement
Indexes the specified Statement.This should be called from within a begin-commit-rollback block.- Parameters:
statement-- Throws:
IOException
-
removeStatement
Removes the specified Statement from the indexes.This should be called from within a begin-commit-rollbackblock.
- Parameters:
statement-- Throws:
IOException
-
addRemoveStatements
void addRemoveStatements(Collection<Statement> added, Collection<Statement> removed) throws IOException Add many statements at the same time, remove many statements at the same time.Ordering by resource has to be done inside this method. The passed added/removed sets are disjunct, no statement can be in both. This should be called from within a begin-commit-rollback block.- Parameters:
added- all added statements, can have multiple subjectsremoved- all removed statements, can have multiple subjects- Throws:
IOException
-
clearContexts
This should be called from within a begin-commit-rollback block.- Parameters:
contexts-- Throws:
IOException
-
addDocuments
Add a complete Lucene Document based on these statements.Do not search for an existing document with the same subject id. (assume the existing document was deleted). This should be called from within a begin-commit-rollback block.- Parameters:
subject-statements- the statements that make up the resource- Throws:
IOException
-
clear
Clears the indexes.- Throws:
IOException
-