Package org.eclipse.rdf4j.sail.lucene
Class AbstractSearchIndex
java.lang.Object
org.eclipse.rdf4j.sail.lucene.AbstractSearchIndex
- All Implemented Interfaces:
SearchIndex
- Direct Known Subclasses:
AbstractLuceneIndex,ElasticsearchIndex,SolrIndex
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected intprotected int -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanReturns whether the provided literal is accepted by the LuceneIndex to be indexed.protected abstract voidfinal voidaddDocuments(Resource subject, List<Statement> statements) Add a complete Lucene Document based on these statements.final voidaddRemoveStatements(Collection<Statement> added, Collection<Statement> removed) Add many statements at the same time, remove many statements at the same time.final voidaddStatement(Statement statement) Indexes the specified Statement.protected abstract SearchDocumentprotected abstract voidfinal Collection<BindingSet>evaluate(SearchQueryEvaluator evaluator) protected abstract Iterable<? extends DocumentDistance>geoQuery(IRI geoProperty, org.locationtech.spatial4j.shape.Point p, IRI units, double distance, String distanceVar, Var context) protected abstract Iterable<? extends DocumentResult>geoRelationQuery(String relation, IRI geoProperty, String wkt, Var context) protected abstract SearchDocumentgetDocument(String id) protected abstract Iterable<? extends SearchDocument>getDocuments(String resourceId) protected ResourcegetResource(SearchDocument document) Returns the Resource corresponding with the specified Document.protected abstract org.locationtech.spatial4j.context.SpatialContextgetSpatialContext(String property) voidinitialize(Properties parameters) booleanisGeoField(String fieldName) 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.protected abstract BulkUpdaterprotected abstract SearchDocumentnewDocument(String id, String resourceId, String context) protected ObjectparseLuceneQueryShape(String property, String value) protected org.locationtech.spatial4j.shape.ShapeparseQueryPoint(String property, String value) protected org.locationtech.spatial4j.shape.ShapeparseQueryShape(String property, String value) protected abstract Iterable<? extends DocumentScore>final voidremoveStatement(Statement statement) Removes the specified Statement from the indexes.This should be called from within a begin-commit-rollbackprotected abstract voidMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.eclipse.rdf4j.sail.lucene.SearchIndex
begin, clear, clearContexts, commit, rollback, shutDown
-
Field Details
-
defaultNumDocs
protected int defaultNumDocs -
maxDocs
protected int maxDocs -
wktFields
-
-
Constructor Details
-
AbstractSearchIndex
public AbstractSearchIndex()
-
-
Method Details
-
initialize
- Specified by:
initializein interfaceSearchIndex- Throws:
Exception
-
getSpatialContext
protected abstract org.locationtech.spatial4j.context.SpatialContext getSpatialContext(String property) -
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.- Specified by:
acceptin interfaceSearchIndex- Parameters:
literal- the literal to be accepted- Returns:
- true if the given literal will be indexed by this LuceneIndex
-
isGeoField
Description copied from interface:SearchIndexReturns true if the given property contains a geometry.- Specified by:
isGeoFieldin interfaceSearchIndex- Returns:
- boolean
-
isTypeStatement
Description copied from interface:SearchIndexReturns true if the given statement is a type statement, seeLuceneSail.INDEXEDTYPESto use. This method should return false ifSearchIndex.isTypeFilteringEnabled()returns false.- Specified by:
isTypeStatementin interfaceSearchIndex- Parameters:
statement- statement- Returns:
- boolean
-
isTypeFilteringEnabled
public boolean isTypeFilteringEnabled()Description copied from interface:SearchIndexis theLuceneSail.INDEXEDTYPESparameter set for this index.- Specified by:
isTypeFilteringEnabledin interfaceSearchIndex- Returns:
- boolean
-
isIndexedTypeStatement
Description copied from interface:SearchIndexReturns true if the given statement is a type statement of the right type, seeLuceneSail.INDEXEDTYPESto use. This method should return false ifSearchIndex.isTypeFilteringEnabled()returns false.- Specified by:
isIndexedTypeStatementin interfaceSearchIndex- Parameters:
statement- statement- Returns:
- boolean
-
getIndexedTypeMapping
- Specified by:
getIndexedTypeMappingin interfaceSearchIndex- Returns:
- the accepted types for a particular predicate map (predicate -> [objects])
-
addStatement
Indexes the specified Statement.- Specified by:
addStatementin interfaceSearchIndex- Throws:
IOException
-
removeStatement
Description copied from interface:SearchIndexRemoves the specified Statement from the indexes.This should be called from within a begin-commit-rollbackblock.
- Specified by:
removeStatementin interfaceSearchIndex- Throws:
IOException
-
addRemoveStatements
public final 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- Specified by:
addRemoveStatementsin interfaceSearchIndex- Parameters:
added- all added statements, can have multiple subjectsremoved- all removed statements, can have multiple subjects- 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)- Specified by:
addDocumentsin interfaceSearchIndex- Parameters:
statements- the statements that make up the resource- Throws:
IOException
-
evaluate
- Specified by:
evaluatein interfaceSearchIndex- Throws:
SailException
-
parseLuceneQueryShape
protected Object parseLuceneQueryShape(String property, String value) throws ParseException, IOException - Throws:
ParseExceptionIOException
-
parseQueryShape
protected org.locationtech.spatial4j.shape.Shape parseQueryShape(String property, String value) throws ParseException - Throws:
ParseException
-
parseQueryPoint
protected org.locationtech.spatial4j.shape.Shape parseQueryPoint(String property, String value) throws ParseException - Throws:
ParseException
-
getResource
Returns the Resource corresponding with the specified Document. -
getDocument
- Throws:
IOException
-
getDocuments
protected abstract Iterable<? extends SearchDocument> getDocuments(String resourceId) throws IOException - Throws:
IOException
-
newDocument
-
copyDocument
-
addDocument
- Throws:
IOException
-
updateDocument
- Throws:
IOException
-
deleteDocument
- Throws:
IOException
-
query
protected abstract Iterable<? extends DocumentScore> query(Resource subject, QuerySpec param) throws MalformedQueryException, IOException - Throws:
MalformedQueryExceptionIOException
-
geoQuery
protected abstract Iterable<? extends DocumentDistance> geoQuery(IRI geoProperty, org.locationtech.spatial4j.shape.Point p, IRI units, double distance, String distanceVar, Var context) throws MalformedQueryException, IOException - Throws:
MalformedQueryExceptionIOException
-
geoRelationQuery
protected abstract Iterable<? extends DocumentResult> geoRelationQuery(String relation, IRI geoProperty, String wkt, Var context) throws MalformedQueryException, IOException - Throws:
MalformedQueryExceptionIOException
-
newBulkUpdate
-