Package org.eclipse.rdf4j.sail.solr
Class SolrIndex
- java.lang.Object
-
- org.eclipse.rdf4j.sail.lucene.AbstractSearchIndex
-
- org.eclipse.rdf4j.sail.solr.SolrIndex
-
- All Implemented Interfaces:
SearchIndex
public class SolrIndex extends AbstractSearchIndex
- See Also:
LuceneSail
-
-
Field Summary
Fields Modifier and Type Field Description static StringDISTANCE_FIELDstatic StringSERVER_KEY-
Fields inherited from class org.eclipse.rdf4j.sail.lucene.AbstractSearchIndex
maxDocs, wktFields
-
-
Constructor Summary
Constructors Constructor Description SolrIndex()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidaddDocument(SearchDocument doc)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.protected SearchDocumentcopyDocument(SearchDocument doc)protected com.google.common.base.Function<? super String,? extends org.locationtech.spatial4j.context.SpatialContext>createSpatialContextMapper(Map<String,String> parameters)protected voiddeleteDocument(SearchDocument doc)protected Iterable<? extends DocumentDistance>geoQuery(IRI geoProperty, org.locationtech.spatial4j.shape.Point p, IRI units, double distance, String distanceVar, Var contextVar)protected Iterable<? extends DocumentResult>geoRelationQuery(String relation, IRI geoProperty, String wkt, Var contextVar)org.apache.solr.client.solrj.SolrClientgetClient()protected SearchDocumentgetDocument(String id)Returns a Document representing the specified document ID (combination of resource and context), or null when no such Document exists yet.SearchDocumentgetDocument(Resource subject, Resource context)Returns a Document representing the specified Resource and Context combination, or null when no such Document exists yet.protected Iterable<? extends SearchDocument>getDocuments(String resourceId)Iterable<? extends SearchDocument>getDocuments(Resource subject)Returns a list of Documents representing the specified Resource (empty when no such Document exists yet).Each document represent a set of statements with the specified Resource as a subject, which are stored in a specific contextstatic Set<String>getPropertyFields(Set<String> fields)Filters the given list of fields, retaining all property fields.protected org.locationtech.spatial4j.context.SpatialContextgetSpatialContext(String property)voidinitialize(Properties parameters)protected BulkUpdaternewBulkUpdate()protected SearchDocumentnewDocument(String id, String resourceId, String context)protected org.locationtech.spatial4j.shape.ShapeparseQueryShape(String property, String value)protected Iterable<? extends DocumentScore>query(Resource subject, String query, IRI propertyURI, boolean highlight)Parse the passed query.voidrollback()org.apache.solr.client.solrj.response.QueryResponsesearch(org.apache.solr.client.solrj.SolrQuery query)Evaluates the given query and returns the results as a TopDocs instance.org.apache.solr.client.solrj.response.QueryResponsesearch(Resource resource, org.apache.solr.client.solrj.SolrQuery query)Evaluates the given query only for the given resource.voidshutDown()protected StringtoWkt(org.locationtech.spatial4j.shape.Shape s)protected voidupdateDocument(SearchDocument doc)-
Methods inherited from class org.eclipse.rdf4j.sail.lucene.AbstractSearchIndex
accept, addDocuments, addRemoveStatements, addStatement, evaluate, getIndexedTypeMapping, getResource, isGeoField, isIndexedTypeStatement, isTypeFilteringEnabled, isTypeStatement, parseLuceneQueryShape, parseQueryPoint, removeStatement
-
-
-
-
Field Detail
-
SERVER_KEY
public static final String SERVER_KEY
- See Also:
- Constant Field Values
-
DISTANCE_FIELD
public static final String DISTANCE_FIELD
- See Also:
- Constant Field Values
-
-
Method Detail
-
initialize
public void initialize(Properties parameters) throws Exception
- Specified by:
initializein interfaceSearchIndex- Overrides:
initializein classAbstractSearchIndex- Throws:
Exception
-
createSpatialContextMapper
protected com.google.common.base.Function<? super String,? extends org.locationtech.spatial4j.context.SpatialContext> createSpatialContextMapper(Map<String,String> parameters)
-
getClient
public org.apache.solr.client.solrj.SolrClient getClient()
-
getSpatialContext
protected org.locationtech.spatial4j.context.SpatialContext getSpatialContext(String property)
- Specified by:
getSpatialContextin classAbstractSearchIndex
-
shutDown
public void shutDown() throws IOException- Throws:
IOException
-
getDocument
protected SearchDocument getDocument(String id) throws IOException
Returns a Document representing the specified document ID (combination of resource and context), or null when no such Document exists yet.- Specified by:
getDocumentin classAbstractSearchIndex- Parameters:
id-- Returns:
- search document
- Throws:
IOException
-
getDocuments
protected Iterable<? extends SearchDocument> getDocuments(String resourceId) throws IOException
- Specified by:
getDocumentsin classAbstractSearchIndex- Throws:
IOException
-
newDocument
protected SearchDocument newDocument(String id, String resourceId, String context)
- Specified by:
newDocumentin classAbstractSearchIndex
-
copyDocument
protected SearchDocument copyDocument(SearchDocument doc)
- Specified by:
copyDocumentin classAbstractSearchIndex
-
addDocument
protected void addDocument(SearchDocument doc) throws IOException
- Specified by:
addDocumentin classAbstractSearchIndex- Throws:
IOException
-
updateDocument
protected void updateDocument(SearchDocument doc) throws IOException
- Specified by:
updateDocumentin classAbstractSearchIndex- Throws:
IOException
-
deleteDocument
protected void deleteDocument(SearchDocument doc) throws IOException
- Specified by:
deleteDocumentin classAbstractSearchIndex- Throws:
IOException
-
newBulkUpdate
protected BulkUpdater newBulkUpdate()
- Specified by:
newBulkUpdatein classAbstractSearchIndex
-
getDocument
public SearchDocument getDocument(Resource subject, Resource context) throws IOException
Returns a Document representing the specified Resource and Context combination, or null when no such Document exists yet.- Parameters:
subject-context-- Returns:
- search document
- Throws:
IOException
-
getDocuments
public Iterable<? extends SearchDocument> getDocuments(Resource subject) throws IOException
Returns a list of Documents representing the specified Resource (empty when no such Document exists yet).Each document represent a set of statements with the specified Resource as a subject, which are stored in a specific context- Parameters:
subject-- Returns:
- list of documents
- Throws:
IOException
-
getPropertyFields
public static Set<String> getPropertyFields(Set<String> fields)
Filters the given list of fields, retaining all property fields.- Parameters:
fields-- Returns:
- set of fields
-
begin
public void begin() throws IOExceptionDescription copied from interface:SearchIndexBegins a transaction.- Throws:
IOException
-
commit
public void commit() throws IOExceptionDescription copied from interface:SearchIndexCommits 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
public void rollback() throws IOException- Throws:
IOException
-
query
protected Iterable<? extends DocumentScore> query(Resource subject, String query, IRI propertyURI, boolean highlight) throws MalformedQueryException, IOException
Parse the passed query.- Specified by:
queryin classAbstractSearchIndex- Parameters:
subject-query- stringpropertyURI-highlight-- Returns:
- the parsed query
- Throws:
MalformedQueryExceptionIOException
-
search
public org.apache.solr.client.solrj.response.QueryResponse search(Resource resource, org.apache.solr.client.solrj.SolrQuery query) throws org.apache.solr.client.solrj.SolrServerException, IOException
Evaluates the given query only for the given resource.- Parameters:
resource-query-- Returns:
- response
- Throws:
org.apache.solr.client.solrj.SolrServerExceptionIOException
-
geoQuery
protected Iterable<? extends DocumentDistance> geoQuery(IRI geoProperty, org.locationtech.spatial4j.shape.Point p, IRI units, double distance, String distanceVar, Var contextVar) throws MalformedQueryException, IOException
- Specified by:
geoQueryin classAbstractSearchIndex- Throws:
MalformedQueryExceptionIOException
-
geoRelationQuery
protected Iterable<? extends DocumentResult> geoRelationQuery(String relation, IRI geoProperty, String wkt, Var contextVar) throws MalformedQueryException, IOException
- Specified by:
geoRelationQueryin classAbstractSearchIndex- Throws:
MalformedQueryExceptionIOException
-
parseQueryShape
protected org.locationtech.spatial4j.shape.Shape parseQueryShape(String property, String value) throws ParseException
- Overrides:
parseQueryShapein classAbstractSearchIndex- Throws:
ParseException
-
toWkt
protected String toWkt(org.locationtech.spatial4j.shape.Shape s)
-
search
public org.apache.solr.client.solrj.response.QueryResponse search(org.apache.solr.client.solrj.SolrQuery query) throws org.apache.solr.client.solrj.SolrServerException, IOExceptionEvaluates the given query and returns the results as a TopDocs instance.- Parameters:
query-- Returns:
- query response
- Throws:
org.apache.solr.client.solrj.SolrServerExceptionIOException
-
clearContexts
public void clearContexts(Resource... contexts) throws IOException
Description copied from interface:SearchIndexThis should be called from within a begin-commit-rollback block.- Parameters:
contexts-- Throws:
IOException
-
clear
public void clear() throws IOExceptionDescription copied from interface:SearchIndexClears the indexes.- Throws:
IOException
-
-