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 TypeMethodDescriptionboolean
Returns whether the provided literal is accepted by the LuceneIndex to be indexed.void
addDocuments
(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.void
addRemoveStatements
(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.void
addStatement
(Statement statement) Indexes the specified Statement.This should be called from within a begin-commit-rollback block.void
begin()
Begins a transaction.void
clear()
Clears the indexes.void
clearContexts
(Resource... contexts) This should be called from within a begin-commit-rollback block.void
commit()
Commits any changes done to the LuceneIndex since the last commit.The semantics is synchronous to SailConnection.commit(), i.e.evaluate
(SearchQueryEvaluator query) void
initialize
(Properties parameters) boolean
isGeoField
(String propertyName) Returns true if the given property contains a geometry.boolean
isIndexedTypeStatement
(Statement statement) Returns true if the given statement is a type statement of the right type, seeLuceneSail.INDEXEDTYPES
to use.boolean
is theLuceneSail.INDEXEDTYPES
parameter set for this index.boolean
isTypeStatement
(Statement statement) Returns true if the given statement is a type statement, seeLuceneSail.INDEXEDTYPES
to use.void
removeStatement
(Statement statement) Removes the specified Statement from the indexes.This should be called from within a begin-commit-rollbackvoid
rollback()
void
shutDown()
-
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.INDEXEDTYPES
to use. This method should return false ifisTypeFilteringEnabled()
returns false.- Parameters:
statement
- statement- Returns:
- boolean
-
isTypeFilteringEnabled
boolean isTypeFilteringEnabled()is theLuceneSail.INDEXEDTYPES
parameter set for this index.- Returns:
- boolean
-
isIndexedTypeStatement
Returns true if the given statement is a type statement of the right type, seeLuceneSail.INDEXEDTYPES
to 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
-