diff --git a/config/alfresco/application-context-core.xml b/config/alfresco/application-context-core.xml
index 80a4795bbe..1589b5c05f 100644
--- a/config/alfresco/application-context-core.xml
+++ b/config/alfresco/application-context-core.xml
@@ -25,7 +25,6 @@
-
diff --git a/config/alfresco/bootstrap-context.xml b/config/alfresco/bootstrap-context.xml
index 4ffb89842b..30224b04f3 100644
--- a/config/alfresco/bootstrap-context.xml
+++ b/config/alfresco/bootstrap-context.xml
@@ -42,6 +42,12 @@
+
+
+
+
+
+
@@ -469,8 +475,8 @@
-
-
+
+
@@ -750,6 +756,12 @@
+
+
+
+
+
+
diff --git a/config/alfresco/cmis-api-context.xml b/config/alfresco/cmis-api-context.xml
index 6b355448cc..f996aabf7d 100644
--- a/config/alfresco/cmis-api-context.xml
+++ b/config/alfresco/cmis-api-context.xml
@@ -57,22 +57,18 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+ search.CMISQueryService
+
+
+
+ org.alfresco.cmis.CMISQueryService
+
+
@@ -141,58 +137,5 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- org.alfresco.repo.search.impl.querymodel.QueryEngine
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- org.alfresco.repo.search.impl.querymodel.QueryEngine.executeQuery=ACL_ALLOW,AFTER_ACL_NODE.sys:base.Read
- org.alfresco.repo.search.impl.querymodel.QueryEngine.getQueryModelFactory=ACL_ALLOW
-
-
-
\ No newline at end of file
diff --git a/config/alfresco/core-services-context.xml b/config/alfresco/core-services-context.xml
index 1283b70848..66a8b5e04a 100644
--- a/config/alfresco/core-services-context.xml
+++ b/config/alfresco/core-services-context.xml
@@ -503,454 +503,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- org.alfresco.repo.search.impl.lucene.LuceneIndexerAndSearcher
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- org.alfresco.service.cmr.search.CategoryService
-
-
-
-
-
-
-
-
-
-
-
- indexThread
-
-
- 10
-
-
- 20
-
-
- 5
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ${dir.indexes}
-
-
- ${dir.indexes.lock}
-
-
- ${lucene.maxAtomicTransformationTime}
-
-
- ${lucene.query.maxClauses}
-
-
- ${lucene.indexer.batchSize}
-
-
-
- ${lucene.indexer.cacheEnabled}
-
-
- ${lucene.indexer.maxDocIdCacheSize}
-
-
- ${lucene.indexer.maxDocumentCacheSize}
-
-
- ${lucene.indexer.maxIsCategoryCacheSize}
-
-
- ${lucene.indexer.maxLinkAspectCacheSize}
-
-
- ${lucene.indexer.maxParentCacheSize}
-
-
- ${lucene.indexer.maxPathCacheSize}
-
-
- ${lucene.indexer.maxTypeCacheSize}
-
-
-
- ${lucene.indexer.mergerMaxMergeDocs}
-
-
- ${lucene.indexer.mergerMergeFactor}
-
-
- ${lucene.indexer.mergerMaxBufferedDocs}
-
-
- ${lucene.indexer.mergerRamBufferSizeMb}
-
-
-
- ${lucene.indexer.writerMaxMergeDocs}
-
-
- ${lucene.indexer.writerMergeFactor}
-
-
- ${lucene.indexer.writerMaxBufferedDocs}
-
-
- ${lucene.indexer.writerRamBufferSizeMb}
-
-
-
- ${lucene.indexer.mergerTargetIndexCount}
-
-
- ${lucene.indexer.mergerTargetOverlayCount}
-
-
- ${lucene.indexer.mergerTargetOverlaysBlockingFactor}
-
-
- ${lucene.indexer.maxDocsForInMemoryMerge}
-
-
- ${lucene.indexer.maxRamInMbForInMemoryMerge}
-
-
- ${lucene.indexer.maxDocsForInMemoryIndex}
-
-
- ${lucene.indexer.maxRamInMbForInMemoryIndex}
-
-
-
- ${lucene.indexer.termIndexInterval}
-
-
- ${lucene.indexer.useNioMemoryMapping}
-
-
- ${lucene.indexer.postSortDateTime}
-
-
- ${lucene.indexer.defaultMLIndexAnalysisMode}
-
-
- ${lucene.indexer.defaultMLSearchAnalysisMode}
-
-
- ${lucene.indexer.maxFieldLength}
-
-
- ${lucene.indexer.fairLocking}
-
-
- ${lucene.write.lock.timeout}
-
-
- ${lucene.commit.lock.timeout}
-
-
- ${lucene.lock.poll.interval}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1234,19 +786,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1303,70 +842,7 @@
-
-
-
-
- org.alfresco.repo.search.impl.lucene.fts.FullTextSearchIndexer
-
-
-
-
-
-
-
-
-
- ${server.transaction.mode.default}
-
-
-
-
-
-
-
-
-
- ${fts.indexer.batchSize}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ${dir.indexes.backup}
-
-
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -1555,4 +1031,311 @@
+
+
+
+
+
+
+
+
+ true
+
+
+ Search
+
+
+ ${index.subsystem.name}
+
+
+
+ manager
+
+
+
+
+
+
+
+ false
+
+
+ Search
+
+
+ solr
+
+
+
+ managed
+ solr
+
+
+
+
+
+
+ false
+
+
+ Search
+
+
+ lucene
+
+
+
+ managed
+ lucene
+
+
+
+
+
+
+
+
+
+ search.indexerAndSearcherFactory
+
+
+
+ org.alfresco.repo.search.IndexerAndSearcher
+
+
+
+
+
+
+
+
+
+ search.admSearchService
+
+
+
+ org.alfresco.service.cmr.search.SearchService
+
+
+
+
+
+
+
+
+
+ search.versionSearchService
+
+
+
+ org.alfresco.service.cmr.search.SearchService
+
+
+
+
+
+
+
+
+
+ search.searchService
+
+
+
+ org.alfresco.service.cmr.search.SearchService
+
+
+
+
+
+
+
+
+
+ search.avmLuceneIndexerAndSearcherFactory
+
+
+
+ org.alfresco.repo.search.IndexerAndSearcher
+ org.alfresco.repo.search.impl.lucene.LuceneConfig
+
+
+
+
+
+
+
+
+
+ search.admLuceneIndexerAndSearcherFactory
+
+
+
+ org.alfresco.repo.search.IndexerAndSearcher
+ org.alfresco.repo.search.impl.lucene.LuceneConfig
+
+
+
+
+
+
+
+
+
+ search.admLuceneUnIndexedIndexerAndSearcherFactory
+
+
+
+ org.alfresco.repo.search.IndexerAndSearcher
+ org.alfresco.repo.search.impl.lucene.LuceneConfig
+
+
+
+
+
+
+
+
+
+
+ search.indexerComponent
+
+
+
+ org.alfresco.repo.search.Indexer
+
+
+
+
+
+
+
+
+
+ search.queryRegisterComponent
+
+
+
+ org.alfresco.repo.search.QueryRegisterComponent
+
+
+
+
+
+
+
+
+
+ search.categoryService
+
+
+
+ org.alfresco.service.cmr.search.CategoryService
+
+
+
+
+
+
+
+
+
+ search.indexRecoveryComponent
+
+
+
+ org.alfresco.repo.node.index.IndexRecovery
+
+
+
+
+
+
+
+
+
+ search.avmIndexRecoveryComponent
+
+
+
+ org.alfresco.repo.node.index.IndexRecovery
+
+
+
+
+
+
+
+
+
+
+
+ search.LuceneFullTextSearchIndexer
+
+
+
+ org.alfresco.repo.search.impl.lucene.fts.FullTextSearchIndexer
+
+
+
+
+
+
+
+
+
+
+ search.ftsIndexerTrigger
+
+
+
+ org.alfresco.util.TriggerBeanSPI
+ org.springframework.beans.factory.InitializingBean
+ org.springframework.beans.factory.DisposableBean
+
+
+
+
+
+
+
+
+
+ search.adm.luceneQueryEngineImpl
+
+
+
+ org.alfresco.repo.search.impl.querymodel.QueryEngine
+
+
+
+
+
+
+
+
+
+ search.indexConfigurationChecker
+
+
+
+ org.alfresco.repo.admin.IndexConfigurationChecker
+
+
+
+
+
+
+
+
+
+ search.solrTrackingComponent
+
+
+
+ org.alfresco.repo.solr.SOLRTrackingComponent
+
+
+
+
diff --git a/config/alfresco/opencmis-context.xml b/config/alfresco/opencmis-context.xml
index 82c22fa697..925245c797 100644
--- a/config/alfresco/opencmis-context.xml
+++ b/config/alfresco/opencmis-context.xml
@@ -80,70 +80,25 @@
-
-
-
-
-
-
-
+
+
+
+
+
+ search.OpenCMISQueryService
+
+
+
+ org.alfresco.opencmis.search.CMISQueryService
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- org.alfresco.repo.search.impl.querymodel.QueryEngine
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- org.alfresco.repo.search.impl.querymodel.QueryEngine.executeQuery=ACL_ALLOW,AFTER_ACL_NODE.sys:base.Read
- org.alfresco.repo.search.impl.querymodel.QueryEngine.getQueryModelFactory=ACL_ALLOW
-
-
-
+
\ No newline at end of file
diff --git a/config/alfresco/repository.properties b/config/alfresco/repository.properties
index 07c3403825..511f272199 100644
--- a/config/alfresco/repository.properties
+++ b/config/alfresco/repository.properties
@@ -42,6 +42,8 @@ system.workflow.deployservlet.enabled=false
# Sets the location for the JBPM Configuration File
system.workflow.jbpm.config.location=classpath:org/alfresco/repo/workflow/jbpm/jbpm.cfg.xml
+index.subsystem.name=lucene
+
# ######################################### #
# Index Recovery and Tracking Configuration #
# ######################################### #
@@ -281,6 +283,8 @@ lucene.write.lock.timeout=10000
lucene.commit.lock.timeout=100000
lucene.lock.poll.interval=100
+index.backup.cronExpression=0 0 3 * * ?
+
lucene.defaultAnalyserResourceBundleName=alfresco/model/dataTypeAnalyzers
diff --git a/config/alfresco/scheduled-jobs-context.xml b/config/alfresco/scheduled-jobs-context.xml
index 6286ef1e32..bc7f17c39f 100644
--- a/config/alfresco/scheduled-jobs-context.xml
+++ b/config/alfresco/scheduled-jobs-context.xml
@@ -6,60 +6,8 @@
-
-
-
-
- org.alfresco.repo.search.impl.lucene.fts.FTSIndexerJob
-
-
-
-
-
-
-
-
-
-
- 1
-
-
- 1
-
-
-
-
+
@@ -157,31 +105,6 @@
-
-
- org.alfresco.repo.search.impl.lucene.AbstractLuceneIndexerAndSearcherFactory$LuceneIndexBackupJob
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 0 0 3 * * ?
-
-
-
diff --git a/config/alfresco/subsystems/Search/common-search-context.xml b/config/alfresco/subsystems/Search/common-search-context.xml
new file mode 100644
index 0000000000..6ea9820784
--- /dev/null
+++ b/config/alfresco/subsystems/Search/common-search-context.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${search.solrTrackingSupport.enabled}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/config/alfresco/subsystems/Search/lucene/bootstrap-context.xml b/config/alfresco/subsystems/Search/lucene/bootstrap-context.xml
new file mode 100644
index 0000000000..032914b4c3
--- /dev/null
+++ b/config/alfresco/subsystems/Search/lucene/bootstrap-context.xml
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${system.bootstrap.config_check.strict}
+
+
+ ${dir.root}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/config/alfresco/subsystems/Search/lucene/cmis-api-context.xml b/config/alfresco/subsystems/Search/lucene/cmis-api-context.xml
new file mode 100644
index 0000000000..1265517017
--- /dev/null
+++ b/config/alfresco/subsystems/Search/lucene/cmis-api-context.xml
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ org.alfresco.repo.search.impl.querymodel.QueryEngine
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ org.alfresco.repo.search.impl.querymodel.QueryEngine.executeQuery=ACL_ALLOW,AFTER_ACL_NODE.sys:base.Read
+ org.alfresco.repo.search.impl.querymodel.QueryEngine.getQueryModelFactory=ACL_ALLOW
+
+
+
+
+
\ No newline at end of file
diff --git a/config/alfresco/subsystems/Search/lucene/common-search.properties b/config/alfresco/subsystems/Search/lucene/common-search.properties
new file mode 100644
index 0000000000..d315f426f9
--- /dev/null
+++ b/config/alfresco/subsystems/Search/lucene/common-search.properties
@@ -0,0 +1,2 @@
+search.solrTrackingSupport.enabled=true
+
diff --git a/config/alfresco/index-recovery-context.xml b/config/alfresco/subsystems/Search/lucene/index-recovery-context.xml
similarity index 84%
rename from config/alfresco/index-recovery-context.xml
rename to config/alfresco/subsystems/Search/lucene/index-recovery-context.xml
index d95f8d23af..93090f8718 100644
--- a/config/alfresco/index-recovery-context.xml
+++ b/config/alfresco/subsystems/Search/lucene/index-recovery-context.xml
@@ -6,7 +6,7 @@
-
-
+
-
+
-
+
-
+
-
+
@@ -61,9 +61,9 @@
+ parent="search.indexRecoveryComponentBase">
${index.recovery.mode}
@@ -74,14 +74,14 @@
${index.tracking.maxTransactionsPerLuceneCommit}
-
+
+ parent="search.indexRecoveryComponentBase">
${index.recovery.mode}
@@ -100,9 +100,9 @@
is required.
-->
-