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:
LuceneSail
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description boolean
accept(Literal literal)
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.Collection<BindingSet>
evaluate(SearchQueryEvaluator query)
Map<IRI,Set<IRI>>
getIndexedTypeMapping()
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
isTypeFilteringEnabled()
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 Detail
-
initialize
void initialize(Properties parameters) throws Exception
- Throws:
Exception
-
evaluate
Collection<BindingSet> evaluate(SearchQueryEvaluator query) throws SailException
- Throws:
SailException
-
shutDown
void shutDown() throws IOException
- Throws:
IOException
-
accept
boolean accept(Literal literal)
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
boolean isGeoField(String propertyName)
Returns true if the given property contains a geometry.- Parameters:
propertyName
-- Returns:
- boolean
-
isTypeStatement
boolean isTypeStatement(Statement statement)
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
boolean isIndexedTypeStatement(Statement statement)
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
Map<IRI,Set<IRI>> getIndexedTypeMapping()
- Returns:
- the accepted types for a particular predicate map (predicate -> [objects])
-
begin
void begin() throws IOException
Begins a transaction.- Throws:
IOException
-
commit
void commit() throws IOException
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
void rollback() throws IOException
- Throws:
IOException
-
addStatement
void addStatement(Statement statement) throws IOException
Indexes the specified Statement.This should be called from within a begin-commit-rollback block.- Parameters:
statement
-- Throws:
IOException
-
removeStatement
void removeStatement(Statement statement) throws IOException
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
void clearContexts(Resource... contexts) throws IOException
This should be called from within a begin-commit-rollback block.- Parameters:
contexts
-- Throws:
IOException
-
addDocuments
void addDocuments(Resource subject, List<Statement> statements) throws IOException
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
void clear() throws IOException
Clears the indexes.- Throws:
IOException
-
-