Package org.alfresco.solr
Class SolrInformationServer
- java.lang.Object
-
- org.alfresco.solr.SolrInformationServer
-
- All Implemented Interfaces:
InformationServer,org.alfresco.solr.InformationServerCollectionProvider
public class SolrInformationServer extends Object implements InformationServer
This is the Apache Solr implementation of the information server (index).- Since:
- 5.0
- Author:
- Ahmed Owian
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classSolrInformationServer.FTSStatus
-
Field Summary
Fields Modifier and Type Field Description static StringANDstatic StringCASCADE_TRACKER_ENABLEDShared property to determine if the cascade tracking is enabled.static StringDOC_TYPE_ACLstatic StringDOC_TYPE_ACL_TXstatic StringDOC_TYPE_NODEstatic StringDOC_TYPE_TXstatic StringORstatic StringSOLR_BASEURLstatic StringSOLR_HOSTstatic StringSOLR_PORT-
Fields inherited from interface org.alfresco.solr.InformationServer
PROP_PREFIX_PARENT_ASPECT, PROP_PREFIX_PARENT_TYPE
-
-
Constructor Summary
Constructors Constructor Description SolrInformationServer(AlfrescoCoreAdminHandler adminHandler, org.apache.solr.core.SolrCore core, org.alfresco.solr.client.SOLRAPIClient repositoryClient, SolrContentStore solrContentStore)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanaclChangeSetInIndex(long changeSetId, boolean populateCache)voidaddCommonNodeReportInfo(org.alfresco.solr.NodeReport nodeReport)voidaddFTSStatusCounts(org.apache.solr.common.util.NamedList<Object> report)voidafterInitModels()voidcapIndex(long dbid)voidcascadeNodes(List<org.alfresco.solr.client.NodeMetaData> nodeMetaDatas, boolean overwrite)booleancascadeTrackingEnabled()Check if cascade tracking is enabled.org.alfresco.solr.AclReportcheckAclInIndex(Long aclid, org.alfresco.solr.AclReport aclReport)voidclearProcessedAclChangeSets()voidclearProcessedTransactions()voidcommit()booleancommit(boolean openSearcher)voidcontinueState(org.alfresco.solr.TrackerState state)voiddeleteByAclChangeSetId(Long aclChangeSetId)voiddeleteByAclId(Long aclId)voiddeleteByNodeId(Long nodeId)voiddeleteByTransactionId(Long transactionId)voiddirtyTransaction(long txnId)voidflushContentStore()intgetAclTxDocsSize(String aclTxId, String aclTxCommitTime)AlfrescoCoreAdminHandlergetAdminHandler()List<org.alfresco.solr.client.AlfrescoModel>getAlfrescoModels()StringgetBaseUrl()List<org.alfresco.solr.client.NodeMetaData>getCascadeNodes(List<Long> txnIds)List<org.alfresco.solr.client.Transaction>getCascades(int num)Iterable<Map.Entry<String,Object>>getCoreStats()org.alfresco.repo.dictionary.DictionaryComponentgetDictionaryService(String alternativeDictionary)intgetDocListSize(String query)List<AlfrescoSolrDataModel.TenantAclIdDbId>getDocsWithUncleanContent(int start, int rows)Set<Long>getErrorDocIds()longgetHoleRetention()StringgetHostName()longgetIndexCap()org.alfresco.repo.dictionary.M2ModelgetM2Model(org.alfresco.service.namespace.QName modelQName)org.alfresco.solr.client.AclChangeSetgetMaxAclChangeSetIdAndCommitTimeInIndex()org.alfresco.solr.client.TransactiongetMaxTransactionIdAndCommitTimeInIndex()Map<String,Set<String>>getModelErrors()org.alfresco.repo.dictionary.NamespaceDAOgetNamespaceDAO()org.alfresco.solr.adapters.IOpenBitSetgetOpenBitSetInstance()intgetPort()PropertiesgetProps()intgetRegisteredSearcherCount()<T> org.alfresco.solr.adapters.ISimpleOrderedMap<T>getSimpleOrderedMapInstance()SolrContentStoregetSolrContentStore()org.alfresco.solr.TrackerStategetTrackerInitialState()org.alfresco.solr.tracker.TrackerStatsgetTrackerStats()intgetTxDocsSize(String targetTxId, String targetTxCommitTime)voidhardCommit()longindexAcl(List<org.alfresco.solr.client.AclReaders> aclReaderList, boolean overwrite)voidindexAclTransaction(org.alfresco.solr.client.AclChangeSet changeSet, boolean overwrite)voidindexNode(org.alfresco.solr.client.Node node, boolean overwrite)voidindexNodes(List<org.alfresco.solr.client.Node> nodes, boolean overwrite)voidindexTransaction(org.alfresco.solr.client.Transaction info, boolean overwrite)voidinitSkippingDescendantDocs()booleanisInIndex(String id)voidmaintainCap(long dbid)longmaxNodeId()longminNodeId()longnodeCount()booleanputModel(org.alfresco.repo.dictionary.M2Model model)voidregisterTrackerThread()voidreindexNodeByQuery(String query)org.alfresco.solr.tracker.IndexHealthReportreportAclTransactionsInIndex(Long minAclTxId, org.alfresco.solr.adapters.IOpenBitSet aclTxIdsInDb, long maxAclTxId)org.alfresco.solr.tracker.IndexHealthReportreportIndexTransactions(Long minTxId, org.alfresco.solr.adapters.IOpenBitSet txIdsInDb, long maxTxId)voidrollback()voidsetCleanCascadeTxnFloor(long cleanCascadeTxnFloor)voidsetCleanContentTxnFloor(long cleanContentTxnFloor)booleantxnInIndex(long txnId, boolean populateCache)voidunregisterTrackerThread()voidupdateContentToIndexAndCache(long dbId, String tenant)voidupdateTransaction(org.alfresco.solr.client.Transaction txn)
-
-
-
Field Detail
-
AND
public static final String AND
- See Also:
- Constant Field Values
-
OR
public static final String OR
- See Also:
- Constant Field Values
-
DOC_TYPE_NODE
public static final String DOC_TYPE_NODE
- See Also:
- Constant Field Values
-
DOC_TYPE_ACL
public static final String DOC_TYPE_ACL
- See Also:
- Constant Field Values
-
DOC_TYPE_TX
public static final String DOC_TYPE_TX
- See Also:
- Constant Field Values
-
DOC_TYPE_ACL_TX
public static final String DOC_TYPE_ACL_TX
- See Also:
- Constant Field Values
-
SOLR_HOST
public static final String SOLR_HOST
- See Also:
- Constant Field Values
-
SOLR_PORT
public static final String SOLR_PORT
- See Also:
- Constant Field Values
-
SOLR_BASEURL
public static final String SOLR_BASEURL
- See Also:
- Constant Field Values
-
CASCADE_TRACKER_ENABLED
public static final String CASCADE_TRACKER_ENABLED
Shared property to determine if the cascade tracking is enabled.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
SolrInformationServer
public SolrInformationServer(AlfrescoCoreAdminHandler adminHandler, org.apache.solr.core.SolrCore core, org.alfresco.solr.client.SOLRAPIClient repositoryClient, SolrContentStore solrContentStore)
-
-
Method Detail
-
getAdminHandler
public AlfrescoCoreAdminHandler getAdminHandler()
- Specified by:
getAdminHandlerin interfaceInformationServer
-
cascadeTrackingEnabled
public boolean cascadeTrackingEnabled()
Check if cascade tracking is enabled.- Specified by:
cascadeTrackingEnabledin interfaceInformationServer- Returns:
- true if cascade tracking is enabled (note that this is the default behaviour if not specified in the properties file).
-
initSkippingDescendantDocs
public void initSkippingDescendantDocs()
- Specified by:
initSkippingDescendantDocsin interfaceInformationServer
-
addFTSStatusCounts
public void addFTSStatusCounts(org.apache.solr.common.util.NamedList<Object> report)
- Specified by:
addFTSStatusCountsin interfaceInformationServer
-
afterInitModels
public void afterInitModels()
- Specified by:
afterInitModelsin interfaceInformationServer
-
checkAclInIndex
public org.alfresco.solr.AclReport checkAclInIndex(Long aclid, org.alfresco.solr.AclReport aclReport)
- Specified by:
checkAclInIndexin interfaceInformationServer
-
reportIndexTransactions
public org.alfresco.solr.tracker.IndexHealthReport reportIndexTransactions(Long minTxId, org.alfresco.solr.adapters.IOpenBitSet txIdsInDb, long maxTxId)
- Specified by:
reportIndexTransactionsin interfaceInformationServer
-
reportAclTransactionsInIndex
public org.alfresco.solr.tracker.IndexHealthReport reportAclTransactionsInIndex(Long minAclTxId, org.alfresco.solr.adapters.IOpenBitSet aclTxIdsInDb, long maxAclTxId)
- Specified by:
reportAclTransactionsInIndexin interfaceInformationServer
-
getDocsWithUncleanContent
public List<AlfrescoSolrDataModel.TenantAclIdDbId> getDocsWithUncleanContent(int start, int rows) throws IOException
- Specified by:
getDocsWithUncleanContentin interfaceInformationServer- Throws:
IOException
-
addCommonNodeReportInfo
public void addCommonNodeReportInfo(org.alfresco.solr.NodeReport nodeReport)
- Specified by:
addCommonNodeReportInfoin interfaceInformationServer
-
commit
public void commit() throws IOException- Specified by:
commitin interfaceInformationServer- Throws:
IOException
-
hardCommit
public void hardCommit() throws IOException- Specified by:
hardCommitin interfaceInformationServer- Throws:
IOException
-
commit
public boolean commit(boolean openSearcher) throws IOException- Specified by:
commitin interfaceInformationServer- Throws:
IOException
-
deleteByAclChangeSetId
public void deleteByAclChangeSetId(Long aclChangeSetId) throws IOException
- Specified by:
deleteByAclChangeSetIdin interfaceInformationServer- Throws:
IOException
-
deleteByAclId
public void deleteByAclId(Long aclId) throws IOException
- Specified by:
deleteByAclIdin interfaceInformationServer- Throws:
IOException
-
deleteByNodeId
public void deleteByNodeId(Long nodeId) throws IOException
- Specified by:
deleteByNodeIdin interfaceInformationServer- Throws:
IOException
-
deleteByTransactionId
public void deleteByTransactionId(Long transactionId) throws IOException
- Specified by:
deleteByTransactionIdin interfaceInformationServer- Throws:
IOException
-
getAlfrescoModels
public List<org.alfresco.solr.client.AlfrescoModel> getAlfrescoModels()
- Specified by:
getAlfrescoModelsin interfaceInformationServer
-
getCoreStats
public Iterable<Map.Entry<String,Object>> getCoreStats() throws IOException
- Specified by:
getCoreStatsin interfaceInformationServer- Throws:
IOException
-
getDictionaryService
public org.alfresco.repo.dictionary.DictionaryComponent getDictionaryService(String alternativeDictionary)
- Specified by:
getDictionaryServicein interfaceInformationServer
-
getTxDocsSize
public int getTxDocsSize(String targetTxId, String targetTxCommitTime)
- Specified by:
getTxDocsSizein interfaceInformationServer
-
getAclTxDocsSize
public int getAclTxDocsSize(String aclTxId, String aclTxCommitTime)
- Specified by:
getAclTxDocsSizein interfaceInformationServer
-
getErrorDocIds
public Set<Long> getErrorDocIds() throws IOException
- Specified by:
getErrorDocIdsin interfaceInformationServer- Throws:
IOException
-
getHoleRetention
public long getHoleRetention()
- Specified by:
getHoleRetentionin interfaceInformationServer
-
getM2Model
public org.alfresco.repo.dictionary.M2Model getM2Model(org.alfresco.service.namespace.QName modelQName)
- Specified by:
getM2Modelin interfaceInformationServer
-
getModelErrors
public Map<String,Set<String>> getModelErrors()
- Specified by:
getModelErrorsin interfaceInformationServer
-
getNamespaceDAO
public org.alfresco.repo.dictionary.NamespaceDAO getNamespaceDAO()
- Specified by:
getNamespaceDAOin interfaceInformationServer
-
getOpenBitSetInstance
public org.alfresco.solr.adapters.IOpenBitSet getOpenBitSetInstance()
- Specified by:
getOpenBitSetInstancein interfaceorg.alfresco.solr.InformationServerCollectionProvider
-
getRegisteredSearcherCount
public int getRegisteredSearcherCount()
- Specified by:
getRegisteredSearcherCountin interfaceInformationServer
-
getSimpleOrderedMapInstance
public <T> org.alfresco.solr.adapters.ISimpleOrderedMap<T> getSimpleOrderedMapInstance()
- Specified by:
getSimpleOrderedMapInstancein interfaceorg.alfresco.solr.InformationServerCollectionProvider
-
getTrackerStats
public org.alfresco.solr.tracker.TrackerStats getTrackerStats()
- Specified by:
getTrackerStatsin interfaceInformationServer
-
getTrackerInitialState
public org.alfresco.solr.TrackerState getTrackerInitialState()
- Specified by:
getTrackerInitialStatein interfaceInformationServer
-
continueState
public void continueState(org.alfresco.solr.TrackerState state)
- Specified by:
continueStatein interfaceInformationServer
-
indexAcl
public long indexAcl(List<org.alfresco.solr.client.AclReaders> aclReaderList, boolean overwrite) throws IOException
- Specified by:
indexAclin interfaceInformationServer- Throws:
IOException
-
indexAclTransaction
public void indexAclTransaction(org.alfresco.solr.client.AclChangeSet changeSet, boolean overwrite) throws IOException- Specified by:
indexAclTransactionin interfaceInformationServer- Throws:
IOException
-
getMaxAclChangeSetIdAndCommitTimeInIndex
public org.alfresco.solr.client.AclChangeSet getMaxAclChangeSetIdAndCommitTimeInIndex()
- Specified by:
getMaxAclChangeSetIdAndCommitTimeInIndexin interfaceInformationServer
-
dirtyTransaction
public void dirtyTransaction(long txnId)
- Specified by:
dirtyTransactionin interfaceInformationServer
-
capIndex
public void capIndex(long dbid) throws IOException- Specified by:
capIndexin interfaceInformationServer- Throws:
IOException
-
maintainCap
public void maintainCap(long dbid) throws IOException- Specified by:
maintainCapin interfaceInformationServer- Throws:
IOException
-
nodeCount
public long nodeCount()
- Specified by:
nodeCountin interfaceInformationServer
-
maxNodeId
public long maxNodeId()
- Specified by:
maxNodeIdin interfaceInformationServer
-
minNodeId
public long minNodeId()
- Specified by:
minNodeIdin interfaceInformationServer
-
getIndexCap
public long getIndexCap()
- Specified by:
getIndexCapin interfaceInformationServer
-
indexNode
public void indexNode(org.alfresco.solr.client.Node node, boolean overwrite) throws IOException, org.json.JSONException- Specified by:
indexNodein interfaceInformationServer- Throws:
IOExceptionorg.json.JSONException
-
getCascadeNodes
public List<org.alfresco.solr.client.NodeMetaData> getCascadeNodes(List<Long> txnIds) throws IOException, org.json.JSONException
- Specified by:
getCascadeNodesin interfaceInformationServer- Throws:
IOExceptionorg.json.JSONException
-
cascadeNodes
public void cascadeNodes(List<org.alfresco.solr.client.NodeMetaData> nodeMetaDatas, boolean overwrite) throws IOException, org.json.JSONException
- Specified by:
cascadeNodesin interfaceInformationServer- Throws:
IOExceptionorg.json.JSONException
-
updateContentToIndexAndCache
public void updateContentToIndexAndCache(long dbId, String tenant) throws Exception- Specified by:
updateContentToIndexAndCachein interfaceInformationServer- Throws:
Exception
-
indexNodes
public void indexNodes(List<org.alfresco.solr.client.Node> nodes, boolean overwrite) throws IOException, org.json.JSONException
- Specified by:
indexNodesin interfaceInformationServer- Throws:
IOExceptionorg.json.JSONException
-
updateTransaction
public void updateTransaction(org.alfresco.solr.client.Transaction txn) throws IOException- Specified by:
updateTransactionin interfaceInformationServer- Throws:
IOException
-
indexTransaction
public void indexTransaction(org.alfresco.solr.client.Transaction info, boolean overwrite) throws IOException- Specified by:
indexTransactionin interfaceInformationServer- Throws:
IOException
-
getMaxTransactionIdAndCommitTimeInIndex
public org.alfresco.solr.client.Transaction getMaxTransactionIdAndCommitTimeInIndex()
- Specified by:
getMaxTransactionIdAndCommitTimeInIndexin interfaceInformationServer
-
isInIndex
public boolean isInIndex(String id)
- Specified by:
isInIndexin interfaceInformationServer
-
getCascades
public List<org.alfresco.solr.client.Transaction> getCascades(int num) throws IOException
- Specified by:
getCascadesin interfaceInformationServer- Throws:
IOException
-
txnInIndex
public boolean txnInIndex(long txnId, boolean populateCache) throws IOException- Specified by:
txnInIndexin interfaceInformationServer- Throws:
IOException
-
aclChangeSetInIndex
public boolean aclChangeSetInIndex(long changeSetId, boolean populateCache) throws IOException- Specified by:
aclChangeSetInIndexin interfaceInformationServer- Throws:
IOException
-
clearProcessedTransactions
public void clearProcessedTransactions()
- Specified by:
clearProcessedTransactionsin interfaceInformationServer
-
clearProcessedAclChangeSets
public void clearProcessedAclChangeSets()
- Specified by:
clearProcessedAclChangeSetsin interfaceInformationServer
-
putModel
public boolean putModel(org.alfresco.repo.dictionary.M2Model model)
- Specified by:
putModelin interfaceInformationServer
-
rollback
public void rollback() throws IOException- Specified by:
rollbackin interfaceInformationServer- Throws:
IOException
-
registerTrackerThread
public void registerTrackerThread()
- Specified by:
registerTrackerThreadin interfaceInformationServer
-
unregisterTrackerThread
public void unregisterTrackerThread()
- Specified by:
unregisterTrackerThreadin interfaceInformationServer
-
reindexNodeByQuery
public void reindexNodeByQuery(String query) throws IOException, org.json.JSONException
- Specified by:
reindexNodeByQueryin interfaceInformationServer- Throws:
IOExceptionorg.json.JSONException
-
getBaseUrl
public String getBaseUrl()
- Specified by:
getBaseUrlin interfaceInformationServer
-
getPort
public int getPort()
- Specified by:
getPortin interfaceInformationServer
-
getHostName
public String getHostName()
- Specified by:
getHostNamein interfaceInformationServer
-
setCleanContentTxnFloor
public void setCleanContentTxnFloor(long cleanContentTxnFloor)
- Specified by:
setCleanContentTxnFloorin interfaceInformationServer
-
setCleanCascadeTxnFloor
public void setCleanCascadeTxnFloor(long cleanCascadeTxnFloor)
- Specified by:
setCleanCascadeTxnFloorin interfaceInformationServer
-
getSolrContentStore
public SolrContentStore getSolrContentStore()
-
getProps
public Properties getProps()
-
getDocListSize
public int getDocListSize(String query)
-
flushContentStore
public void flushContentStore() throws IOException- Specified by:
flushContentStorein interfaceInformationServer- Throws:
IOException
-
-