MNT-19887: Non-responsive SOLR address breaks admin console pages

- add HttpClientFactory timeout properties in the SOLR contexts
This commit is contained in:
CezarLeahu
2020-04-21 14:59:56 +03:00
committed by GitHub
parent 1d3bacd03b
commit cc340a33aa
7 changed files with 766 additions and 747 deletions

View File

@@ -37,7 +37,7 @@
<maven.build.sourceVersion>11</maven.build.sourceVersion>
<dependency.alfresco-data-model.version>8.103</dependency.alfresco-data-model.version>
<dependency.alfresco-core.version>8.29</dependency.alfresco-core.version>
<dependency.alfresco-core.version>8.30</dependency.alfresco-core.version>
<dependency.alfresco-legacy-lucene.version>6.2</dependency.alfresco-legacy-lucene.version>
<dependency.alfresco-greenmail.version>6.1</dependency.alfresco-greenmail.version>

View File

@@ -124,6 +124,8 @@
<property name="sslPort" value="${solr.port.ssl}"/>
<property name="maxTotalConnections" value="${solr.max.total.connections}"/>
<property name="maxHostConnections" value="${solr.max.host.connections}"/>
<property name="socketTimeout" value="${solr.http.socket.timeout}"/>
<property name="connectionTimeout" value="${solr.http.connection.timeout}"/>
</bean>
<bean id="solrAdminClient" class="org.alfresco.repo.solr.SOLRAdminClient" init-method="init">

View File

@@ -4,3 +4,7 @@ solr.port.ssl=8443
solr.query.includeGroupsForRoleAdmin=false
solr.query.maximumResultsFromUnlimitedQuery=${system.acl.maxPermissionChecks}
solr.baseUrl=/solr
# SOLR Http Client Factory Properties
solr.http.socket.timeout=2000
solr.http.connection.timeout=500

View File

@@ -1,335 +1,337 @@
<?xml version='1.0' encoding='UTF-8'?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<import resource="../common-search-context.xml" />
<bean id="search.indexerComponent" class="org.alfresco.repo.search.IndexerComponent">
<property name="storeRedirectorProxyFactory">
<ref bean="&amp;search.indexerAndSearcherFactory" />
</property>
</bean>
<bean id="search.searchService" class="org.alfresco.repo.search.SearcherComponent">
<property name="indexerAndSearcherFactory">
<ref bean="search.indexerAndSearcherFactory" />
</property>
</bean>
<bean id="search.admSearchService" class="org.alfresco.repo.search.SearcherComponent">
<property name="indexerAndSearcherFactory">
<ref bean="search.solrIndexerAndSearcherFactory" />
</property>
</bean>
<bean id="search.versionSearchService" class="org.alfresco.repo.search.SearcherComponent">
<property name="indexerAndSearcherFactory">
<ref bean="search.solrIndexerAndSearcherFactory" />
</property>
</bean>
<bean id="search.solrQueryHTTPCLient" class="org.alfresco.repo.search.impl.solr.SolrQueryHTTPClient" init-method="init">
<property name="nodeService">
<ref bean="mlAwareNodeService" />
</property>
<property name="nodeDAO">
<ref bean="nodeDAO" />
</property>
<property name="dictionaryService" ref="dictionaryService"/>
<property name="namespaceDAO" ref="dictionaryDAO" />
<property name="alternativeDictionary" value="${solr.cmis.alternativeDictionary}" />
<property name="permissionService">
<ref bean="permissionService" />
</property>
<property name="tenantService">
<ref bean="tenantService" />
</property>
<property name="repositoryState">
<ref bean="repositoryState" />
</property>
<property name="languageMappings">
<map>
<entry key="lucene" value="alfresco" />
<entry key="solr-alfresco" value="alfresco" />
<entry key="cmis-strict" value="cmis" />
<entry key="cmis-alfresco" value="cmis" />
<entry key="solr-cmis" value="cmis" />
<entry key="fts-alfresco" value="afts" />
<entry key="solr-fts-alfresco" value="afts" />
</map>
</property>
<property name="storeMappings">
<ref bean="solr4.store.mappings" />
</property>
<property name="includeGroupsForRoleAdmin">
<value>${solr.query.includeGroupsForRoleAdmin}</value>
</property>
<property name="maximumResultsFromUnlimitedQuery">
<value>${solr.query.maximumResultsFromUnlimitedQuery}</value>
</property>
<property name="anyDenyDenies" value="${security.anyDenyDenies}"/>
<property name="defaultUnshardedFacetLimit" value="${solr.defaultUnshardedFacetLimit}"/>
<property name="defaultShardedFacetLimit" value="${solr.defaultShardedFacetLimit}"/>
<property name="useDynamicShardRegistration" value="${solr.useDynamicShardRegistration}"/>
</bean>
<!--The configurable RPC user mappings - actually a post-processed composite property! -->
<bean id="solr4.store.mappings" class="org.springframework.beans.factory.config.ListFactoryBean">
<property name="singleton" value="false"/>
<property name="sourceList">
<list>
<bean class="org.alfresco.repo.search.impl.solr.SolrStoreMapping">
<property name="beanName">
<value>solrMappingAlfresco</value>
</property>
<property name="httpClientFactory">
<value>solrHttpClientFactory</value>
</property>
<property name="baseUrl">
<value>${solr.baseUrl}/alfresco</value>
</property>
<property name="protocol">
<value>workspace</value>
</property>
<property name="identifier">
<value>SpacesStore</value>
</property>
<property name="nodeString">
<value>${solr4.alfresco.nodeString}</value>
</property>
<property name="numShards">
<value>${solr4.alfresco.numShards}</value>
</property>
<property name="replicationFactor">
<value>${solr4.alfresco.replicationFactor}</value>
</property>
</bean>
<bean class="org.alfresco.repo.search.impl.solr.SolrStoreMapping">
<property name="beanName">
<value>solrMappingArchive</value>
</property>
<property name="httpClientFactory">
<value>solrHttpClientFactory</value>
</property>
<property name="baseUrl">
<value>${solr.baseUrl}/archive</value>
</property>
<property name="protocol">
<value>archive</value>
</property>
<property name="identifier">
<value>SpacesStore</value>
</property>
<property name="nodeString">
<value>${solr4.archive.nodeString}</value>
</property>
<property name="numShards">
<value>${solr4.archive.numShards}</value>
</property>
<property name="replicationFactor">
<value>${solr4.archive.replicationFactor}</value>
</property>
</bean>
</list>
</property>
</bean>
<bean id="solrHttpClientFactory" class="org.alfresco.httpclient.HttpClientFactory" init-method="init">
<property name="secureCommsType" value="${solr.secureComms}"/>
<property name="sSLEncryptionParameters" ref="sslEncryptionParameters"/>
<property name="keyResourceLoader" ref="springKeyResourceLoader"/>
<property name="keyStoreParameters" ref="keyStoreParameters"/>
<property name="encryptionParameters" ref="md5EncryptionParameters"/>
<property name="host" value="${solr.host}"/>
<property name="port" value="${solr.port}"/>
<property name="sslPort" value="${solr.port.ssl}"/>
<property name="maxTotalConnections" value="${solr.max.total.connections}"/>
<property name="maxHostConnections" value="${solr.max.host.connections}"/>
</bean>
<bean id="solrAdminClient" class="org.alfresco.repo.solr.SOLRAdminClient" init-method="init">
<property name="solrHost" value="${solr.host}"/>
<property name="solrPort" value="${solr.port}"/>
<property name="solrsslPort" value="${solr.port.ssl}"/>
<property name="solrUser" value="${solr.solrUser}"/>
<property name="solrPassword" value="${solr.solrPassword}"/>
<property name="solrPingCronExpression" value="${solr.solrPingCronExpression}"/>
<property name="solrConnectTimeout" value="${solr.solrConnectTimeout}"/>
<property name="httpClientFactory" ref="solrHttpClientFactory"/>
<property name="baseUrl" value="${solr.baseUrl}"/>
<property name="scheduler">
<ref bean="searchSchedulerFactory" />
</property>
</bean>
<bean id="search.solrAdminHTTPCLient" class="org.alfresco.repo.search.impl.solr.SolrAdminHTTPClient" init-method="init">
<property name="httpClientFactory" ref="solrHttpClientFactory"/>
<property name="baseUrl" value="${solr.baseUrl}"/>
</bean>
<bean id="search.lucene.alfresco" class="org.alfresco.repo.search.impl.solr.SolrQueryLanguage" >
<property name="factories">
<list>
<ref bean="search.indexerAndSearcherFactory" />
</list>
</property>
<property name="name">
<value>lucene</value>
</property>
<property name="solrQueryHTTPClient">
<ref bean="search.solrQueryHTTPCLient" />
</property>
</bean>
<bean id="search.solr.alfresco" class="org.alfresco.repo.search.impl.solr.SolrQueryLanguage" >
<property name="factories">
<list>
<ref bean="search.indexerAndSearcherFactory" />
</list>
</property>
<property name="name">
<value>solr-alfresco</value>
</property>
<property name="solrQueryHTTPClient">
<ref bean="search.solrQueryHTTPCLient" />
</property>
</bean>
<bean id="search.lucene.xpath" class="org.alfresco.repo.search.impl.solr.SolrXPathQueryLanguage" >
<property name="solrQueryLanguage" >
<ref bean="search.fts.alfresco.index" />
</property>
<property name="factories">
<list>
<ref bean="search.indexerAndSearcherFactory" />
</list>
</property>
<property name="name">
<value>xpath</value>
</property>
</bean>
<bean id="search.fts.alfresco.index" class="org.alfresco.repo.search.impl.solr.SolrQueryLanguage" >
<property name="factories">
<list>
<ref bean="search.indexerAndSearcherFactory" />
</list>
</property>
<property name="name">
<value>solr-fts-alfresco</value>
</property>
<property name="solrQueryHTTPClient">
<ref bean="search.solrQueryHTTPCLient" />
</property>
</bean>
<bean id="search.solr.cmis" class="org.alfresco.repo.search.impl.solr.SolrQueryLanguage" >
<property name="factories">
<list>
<ref bean="search.indexerAndSearcherFactory" />
</list>
</property>
<property name="name">
<value>solr-cmis</value>
</property>
<property name="solrQueryHTTPClient">
<ref bean="search.solrQueryHTTPCLient" />
</property>
</bean>
<bean id="search.indexerAndSearcherFactory" class="org.alfresco.repo.service.StoreRedirectorProxyFactory">
<property name="proxyInterface">
<value>org.alfresco.repo.search.IndexerAndSearcher</value>
</property>
<property name="defaultBinding">
<ref bean="search.solrIndexerAndSearcherFactory"></ref>
</property>
</bean>
<bean id="search.solrIndexerAndSearcherFactory"
class="org.alfresco.repo.search.impl.solr.SolrIndexerAndSearcherFactory">
<property name="nodeService">
<ref bean="mlAwareNodeService" />
</property>
<property name="dictionaryService">
<ref bean="dictionaryService" />
</property>
<property name="namespacePrefixResolver">
<ref bean="namespaceService" />
</property>
<property name="queryRegister">
<ref bean="search.queryRegisterComponent" />
</property>
</bean>
<alias name="search.indexerAndSearcherFactory" alias="search.admLuceneIndexerAndSearcherFactory"/>
<alias name="search.indexerAndSearcherFactory" alias="search.admLuceneUnIndexedIndexerAndSearcherFactory"/>
<bean id="search.categoryService" class="org.alfresco.repo.service.StoreRedirectorProxyFactory">
<property name="proxyInterface">
<value>org.alfresco.service.cmr.search.CategoryService</value>
</property>
<property name="defaultBinding">
<ref bean="search.luceneCategoryService"></ref>
</property>
<property name="redirectedProtocolBindings">
<map>
<entry key="workspace">
<ref bean="search.luceneCategoryService"></ref>
</entry>
<entry key="versionStore">
<ref bean="search.luceneCategoryService"></ref>
</entry>
</map>
</property>
</bean>
<bean id="search.luceneCategoryService" class="org.alfresco.repo.search.impl.solr.SolrCategoryServiceImpl">
<property name="nodeService">
<ref bean="nodeService" />
</property>
<property name="publicNodeService">
<ref bean="NodeService" />
</property>
<property name="tenantService">
<ref bean="tenantService"/>
</property>
<property name="dictionaryService">
<ref bean="dictionaryService" />
</property>
<property name="namespacePrefixResolver">
<ref bean="namespaceService" />
</property>
<property name="indexerAndSearcher">
<ref bean="search.indexerAndSearcherFactory" />
</property>
<property name="queryFetchSize">
<value>${category.queryFetchSize}</value>
</property>
</bean>
<bean id="search.statsService" class="org.alfresco.repo.search.impl.solr.SolrStatsService">
<property name="searcher">
<ref bean="search.indexerAndSearcherFactory" />
</property>
</bean>
<bean id="search.suggesterService" class="org.alfresco.repo.search.impl.solr.SolrSuggesterServiceImpl">
<property name="enabled">
<value>${solr.suggester.enabled}</value>
</property>
<property name="solrQueryHTTPClient">
<ref bean="search.solrQueryHTTPCLient" />
</property>
</bean>
</beans>
<?xml version='1.0' encoding='UTF-8'?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<import resource="../common-search-context.xml" />
<bean id="search.indexerComponent" class="org.alfresco.repo.search.IndexerComponent">
<property name="storeRedirectorProxyFactory">
<ref bean="&amp;search.indexerAndSearcherFactory" />
</property>
</bean>
<bean id="search.searchService" class="org.alfresco.repo.search.SearcherComponent">
<property name="indexerAndSearcherFactory">
<ref bean="search.indexerAndSearcherFactory" />
</property>
</bean>
<bean id="search.admSearchService" class="org.alfresco.repo.search.SearcherComponent">
<property name="indexerAndSearcherFactory">
<ref bean="search.solrIndexerAndSearcherFactory" />
</property>
</bean>
<bean id="search.versionSearchService" class="org.alfresco.repo.search.SearcherComponent">
<property name="indexerAndSearcherFactory">
<ref bean="search.solrIndexerAndSearcherFactory" />
</property>
</bean>
<bean id="search.solrQueryHTTPCLient" class="org.alfresco.repo.search.impl.solr.SolrQueryHTTPClient" init-method="init">
<property name="nodeService">
<ref bean="mlAwareNodeService" />
</property>
<property name="nodeDAO">
<ref bean="nodeDAO" />
</property>
<property name="dictionaryService" ref="dictionaryService"/>
<property name="namespaceDAO" ref="dictionaryDAO" />
<property name="alternativeDictionary" value="${solr.cmis.alternativeDictionary}" />
<property name="permissionService">
<ref bean="permissionService" />
</property>
<property name="tenantService">
<ref bean="tenantService" />
</property>
<property name="repositoryState">
<ref bean="repositoryState" />
</property>
<property name="languageMappings">
<map>
<entry key="lucene" value="alfresco" />
<entry key="solr-alfresco" value="alfresco" />
<entry key="cmis-strict" value="cmis" />
<entry key="cmis-alfresco" value="cmis" />
<entry key="solr-cmis" value="cmis" />
<entry key="fts-alfresco" value="afts" />
<entry key="solr-fts-alfresco" value="afts" />
</map>
</property>
<property name="storeMappings">
<ref bean="solr4.store.mappings" />
</property>
<property name="includeGroupsForRoleAdmin">
<value>${solr.query.includeGroupsForRoleAdmin}</value>
</property>
<property name="maximumResultsFromUnlimitedQuery">
<value>${solr.query.maximumResultsFromUnlimitedQuery}</value>
</property>
<property name="anyDenyDenies" value="${security.anyDenyDenies}"/>
<property name="defaultUnshardedFacetLimit" value="${solr.defaultUnshardedFacetLimit}"/>
<property name="defaultShardedFacetLimit" value="${solr.defaultShardedFacetLimit}"/>
<property name="useDynamicShardRegistration" value="${solr.useDynamicShardRegistration}"/>
</bean>
<!--The configurable RPC user mappings - actually a post-processed composite property! -->
<bean id="solr4.store.mappings" class="org.springframework.beans.factory.config.ListFactoryBean">
<property name="singleton" value="false"/>
<property name="sourceList">
<list>
<bean class="org.alfresco.repo.search.impl.solr.SolrStoreMapping">
<property name="beanName">
<value>solrMappingAlfresco</value>
</property>
<property name="httpClientFactory">
<value>solrHttpClientFactory</value>
</property>
<property name="baseUrl">
<value>${solr.baseUrl}/alfresco</value>
</property>
<property name="protocol">
<value>workspace</value>
</property>
<property name="identifier">
<value>SpacesStore</value>
</property>
<property name="nodeString">
<value>${solr4.alfresco.nodeString}</value>
</property>
<property name="numShards">
<value>${solr4.alfresco.numShards}</value>
</property>
<property name="replicationFactor">
<value>${solr4.alfresco.replicationFactor}</value>
</property>
</bean>
<bean class="org.alfresco.repo.search.impl.solr.SolrStoreMapping">
<property name="beanName">
<value>solrMappingArchive</value>
</property>
<property name="httpClientFactory">
<value>solrHttpClientFactory</value>
</property>
<property name="baseUrl">
<value>${solr.baseUrl}/archive</value>
</property>
<property name="protocol">
<value>archive</value>
</property>
<property name="identifier">
<value>SpacesStore</value>
</property>
<property name="nodeString">
<value>${solr4.archive.nodeString}</value>
</property>
<property name="numShards">
<value>${solr4.archive.numShards}</value>
</property>
<property name="replicationFactor">
<value>${solr4.archive.replicationFactor}</value>
</property>
</bean>
</list>
</property>
</bean>
<bean id="solrHttpClientFactory" class="org.alfresco.httpclient.HttpClientFactory" init-method="init">
<property name="secureCommsType" value="${solr.secureComms}"/>
<property name="sSLEncryptionParameters" ref="sslEncryptionParameters"/>
<property name="keyResourceLoader" ref="springKeyResourceLoader"/>
<property name="keyStoreParameters" ref="keyStoreParameters"/>
<property name="encryptionParameters" ref="md5EncryptionParameters"/>
<property name="host" value="${solr.host}"/>
<property name="port" value="${solr.port}"/>
<property name="sslPort" value="${solr.port.ssl}"/>
<property name="maxTotalConnections" value="${solr.max.total.connections}"/>
<property name="maxHostConnections" value="${solr.max.host.connections}"/>
<property name="socketTimeout" value="${solr.http.socket.timeout}"/>
<property name="connectionTimeout" value="${solr.http.connection.timeout}"/>
</bean>
<bean id="solrAdminClient" class="org.alfresco.repo.solr.SOLRAdminClient" init-method="init">
<property name="solrHost" value="${solr.host}"/>
<property name="solrPort" value="${solr.port}"/>
<property name="solrsslPort" value="${solr.port.ssl}"/>
<property name="solrUser" value="${solr.solrUser}"/>
<property name="solrPassword" value="${solr.solrPassword}"/>
<property name="solrPingCronExpression" value="${solr.solrPingCronExpression}"/>
<property name="solrConnectTimeout" value="${solr.solrConnectTimeout}"/>
<property name="httpClientFactory" ref="solrHttpClientFactory"/>
<property name="baseUrl" value="${solr.baseUrl}"/>
<property name="scheduler">
<ref bean="searchSchedulerFactory" />
</property>
</bean>
<bean id="search.solrAdminHTTPCLient" class="org.alfresco.repo.search.impl.solr.SolrAdminHTTPClient" init-method="init">
<property name="httpClientFactory" ref="solrHttpClientFactory"/>
<property name="baseUrl" value="${solr.baseUrl}"/>
</bean>
<bean id="search.lucene.alfresco" class="org.alfresco.repo.search.impl.solr.SolrQueryLanguage" >
<property name="factories">
<list>
<ref bean="search.indexerAndSearcherFactory" />
</list>
</property>
<property name="name">
<value>lucene</value>
</property>
<property name="solrQueryHTTPClient">
<ref bean="search.solrQueryHTTPCLient" />
</property>
</bean>
<bean id="search.solr.alfresco" class="org.alfresco.repo.search.impl.solr.SolrQueryLanguage" >
<property name="factories">
<list>
<ref bean="search.indexerAndSearcherFactory" />
</list>
</property>
<property name="name">
<value>solr-alfresco</value>
</property>
<property name="solrQueryHTTPClient">
<ref bean="search.solrQueryHTTPCLient" />
</property>
</bean>
<bean id="search.lucene.xpath" class="org.alfresco.repo.search.impl.solr.SolrXPathQueryLanguage" >
<property name="solrQueryLanguage" >
<ref bean="search.fts.alfresco.index" />
</property>
<property name="factories">
<list>
<ref bean="search.indexerAndSearcherFactory" />
</list>
</property>
<property name="name">
<value>xpath</value>
</property>
</bean>
<bean id="search.fts.alfresco.index" class="org.alfresco.repo.search.impl.solr.SolrQueryLanguage" >
<property name="factories">
<list>
<ref bean="search.indexerAndSearcherFactory" />
</list>
</property>
<property name="name">
<value>solr-fts-alfresco</value>
</property>
<property name="solrQueryHTTPClient">
<ref bean="search.solrQueryHTTPCLient" />
</property>
</bean>
<bean id="search.solr.cmis" class="org.alfresco.repo.search.impl.solr.SolrQueryLanguage" >
<property name="factories">
<list>
<ref bean="search.indexerAndSearcherFactory" />
</list>
</property>
<property name="name">
<value>solr-cmis</value>
</property>
<property name="solrQueryHTTPClient">
<ref bean="search.solrQueryHTTPCLient" />
</property>
</bean>
<bean id="search.indexerAndSearcherFactory" class="org.alfresco.repo.service.StoreRedirectorProxyFactory">
<property name="proxyInterface">
<value>org.alfresco.repo.search.IndexerAndSearcher</value>
</property>
<property name="defaultBinding">
<ref bean="search.solrIndexerAndSearcherFactory"></ref>
</property>
</bean>
<bean id="search.solrIndexerAndSearcherFactory"
class="org.alfresco.repo.search.impl.solr.SolrIndexerAndSearcherFactory">
<property name="nodeService">
<ref bean="mlAwareNodeService" />
</property>
<property name="dictionaryService">
<ref bean="dictionaryService" />
</property>
<property name="namespacePrefixResolver">
<ref bean="namespaceService" />
</property>
<property name="queryRegister">
<ref bean="search.queryRegisterComponent" />
</property>
</bean>
<alias name="search.indexerAndSearcherFactory" alias="search.admLuceneIndexerAndSearcherFactory"/>
<alias name="search.indexerAndSearcherFactory" alias="search.admLuceneUnIndexedIndexerAndSearcherFactory"/>
<bean id="search.categoryService" class="org.alfresco.repo.service.StoreRedirectorProxyFactory">
<property name="proxyInterface">
<value>org.alfresco.service.cmr.search.CategoryService</value>
</property>
<property name="defaultBinding">
<ref bean="search.luceneCategoryService"></ref>
</property>
<property name="redirectedProtocolBindings">
<map>
<entry key="workspace">
<ref bean="search.luceneCategoryService"></ref>
</entry>
<entry key="versionStore">
<ref bean="search.luceneCategoryService"></ref>
</entry>
</map>
</property>
</bean>
<bean id="search.luceneCategoryService" class="org.alfresco.repo.search.impl.solr.SolrCategoryServiceImpl">
<property name="nodeService">
<ref bean="nodeService" />
</property>
<property name="publicNodeService">
<ref bean="NodeService" />
</property>
<property name="tenantService">
<ref bean="tenantService"/>
</property>
<property name="dictionaryService">
<ref bean="dictionaryService" />
</property>
<property name="namespacePrefixResolver">
<ref bean="namespaceService" />
</property>
<property name="indexerAndSearcher">
<ref bean="search.indexerAndSearcherFactory" />
</property>
<property name="queryFetchSize">
<value>${category.queryFetchSize}</value>
</property>
</bean>
<bean id="search.statsService" class="org.alfresco.repo.search.impl.solr.SolrStatsService">
<property name="searcher">
<ref bean="search.indexerAndSearcherFactory" />
</property>
</bean>
<bean id="search.suggesterService" class="org.alfresco.repo.search.impl.solr.SolrSuggesterServiceImpl">
<property name="enabled">
<value>${solr.suggester.enabled}</value>
</property>
<property name="solrQueryHTTPClient">
<ref bean="search.solrQueryHTTPCLient" />
</property>
</bean>
</beans>

View File

@@ -1,26 +1,31 @@
solr.host=localhost
solr.port=8083
solr.port.ssl=8446
solr.query.includeGroupsForRoleAdmin=false
solr.query.maximumResultsFromUnlimitedQuery=${system.acl.maxPermissionChecks}
solr.baseUrl=/solr4
solr.defaultUnshardedFacetLimit=100
solr.defaultShardedFacetLimit=20
solr.useDynamicShardRegistration=false
#
# Solr Suggester properties
#
solr.suggester.enabled=true
#
# Default unsharded
solr4.alfresco.nodeString=
solr4.alfresco.numShards=1
solr4.alfresco.replicationFactor=1
solr4.archive.nodeString=
solr4.archive.numShards=1
solr4.archive.replicationFactor=1
solr.host=localhost
solr.port=8083
solr.port.ssl=8446
solr.query.includeGroupsForRoleAdmin=false
solr.query.maximumResultsFromUnlimitedQuery=${system.acl.maxPermissionChecks}
solr.baseUrl=/solr4
solr.defaultUnshardedFacetLimit=100
solr.defaultShardedFacetLimit=20
solr.useDynamicShardRegistration=false
#
# Solr Suggester properties
#
solr.suggester.enabled=true
#
# Default unsharded
solr4.alfresco.nodeString=
solr4.alfresco.numShards=1
solr4.alfresco.replicationFactor=1
solr4.archive.nodeString=
solr4.archive.numShards=1
solr4.archive.replicationFactor=1
# SOLR Http Client Factory Properties
solr.http.socket.timeout=2000
solr.http.connection.timeout=500

View File

@@ -1,359 +1,361 @@
<?xml version='1.0' encoding='UTF-8'?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<import resource="../common-search-context.xml" />
<bean id="search.indexerComponent" class="org.alfresco.repo.search.IndexerComponent">
<property name="storeRedirectorProxyFactory">
<ref bean="&amp;search.indexerAndSearcherFactory" />
</property>
</bean>
<bean id="search.searchService" class="org.alfresco.repo.search.SearcherComponent">
<property name="indexerAndSearcherFactory">
<ref bean="search.indexerAndSearcherFactory" />
</property>
</bean>
<bean id="search.admSearchService" class="org.alfresco.repo.search.SearcherComponent">
<property name="indexerAndSearcherFactory">
<ref bean="search.solrIndexerAndSearcherFactory" />
</property>
</bean>
<bean id="search.versionSearchService" class="org.alfresco.repo.search.SearcherComponent">
<property name="indexerAndSearcherFactory">
<ref bean="search.solrIndexerAndSearcherFactory" />
</property>
</bean>
<bean id="search.solrQueryHTTPCLient" class="org.alfresco.repo.search.impl.solr.SolrQueryHTTPClient" init-method="init">
<property name="nodeService">
<ref bean="mlAwareNodeService" />
</property>
<property name="nodeDAO">
<ref bean="nodeDAO" />
</property>
<property name="dictionaryService" ref="dictionaryService"/>
<property name="namespaceDAO" ref="dictionaryDAO" />
<property name="alternativeDictionary" value="${solr.cmis.alternativeDictionary}" />
<property name="permissionService">
<ref bean="permissionService" />
</property>
<property name="tenantService">
<ref bean="tenantService" />
</property>
<property name="repositoryState">
<ref bean="repositoryState" />
</property>
<property name="languageMappings">
<map>
<entry key="lucene" value="alfresco" />
<entry key="solr-alfresco" value="alfresco" />
<entry key="cmis-strict" value="cmis" />
<entry key="cmis-alfresco" value="cmis" />
<entry key="solr-cmis" value="cmis" />
<entry key="fts-alfresco" value="afts" />
<entry key="solr-fts-alfresco" value="afts" />
</map>
</property>
<property name="storeMappings">
<ref bean="solr6.store.mappings" />
</property>
<property name="includeGroupsForRoleAdmin">
<value>${solr.query.includeGroupsForRoleAdmin}</value>
</property>
<property name="maximumResultsFromUnlimitedQuery">
<value>${solr.query.maximumResultsFromUnlimitedQuery}</value>
</property>
<property name="anyDenyDenies" value="${security.anyDenyDenies}"/>
<property name="defaultUnshardedFacetLimit" value="${solr.defaultUnshardedFacetLimit}"/>
<property name="defaultShardedFacetLimit" value="${solr.defaultShardedFacetLimit}"/>
<property name="useDynamicShardRegistration" value="${solr.useDynamicShardRegistration}"/>
</bean>
<bean id="search.solrSQLQueryHTTPCLient" class="org.alfresco.repo.search.impl.solr.SolrSQLHttpClient" init-method="init">
<property name="permissionService">
<ref bean="permissionService" />
</property>
<property name="repositoryState">
<ref bean="repositoryState" />
</property>
<property name="storeMappings">
<ref bean="solr6.store.mappings" />
</property>
<property name="tenantService">
<ref bean="tenantService"/>
</property>
<property name="includeGroupsForRoleAdmin">
<value>${solr.query.includeGroupsForRoleAdmin}</value>
</property>
<property name="anyDenyDenies" value="${security.anyDenyDenies}"/>
<property name="useDynamicShardRegistration" value="${solr.useDynamicShardRegistration}"/>
</bean>
<!--The configurable RPC user mappings - actually a post-processed composite property! -->
<bean id="solr6.store.mappings" class="org.springframework.beans.factory.config.ListFactoryBean">
<property name="singleton" value="false"/>
<property name="sourceList">
<list>
<bean class="org.alfresco.repo.search.impl.solr.SolrStoreMapping">
<property name="beanName">
<value>solrMappingAlfresco</value>
</property>
<property name="httpClientFactory">
<value>solrHttpClientFactory</value>
</property>
<property name="baseUrl">
<value>${solr.baseUrl}/alfresco</value>
</property>
<property name="protocol">
<value>workspace</value>
</property>
<property name="identifier">
<value>SpacesStore</value>
</property>
<property name="nodeString">
<value>${solr6.alfresco.nodeString}</value>
</property>
<property name="numShards">
<value>${solr6.alfresco.numShards}</value>
</property>
<property name="replicationFactor">
<value>${solr6.alfresco.replicationFactor}</value>
</property>
</bean>
<bean class="org.alfresco.repo.search.impl.solr.SolrStoreMapping">
<property name="beanName">
<value>solrMappingArchive</value>
</property>
<property name="httpClientFactory">
<value>solrHttpClientFactory</value>
</property>
<property name="baseUrl">
<value>${solr.baseUrl}/archive</value>
</property>
<property name="protocol">
<value>archive</value>
</property>
<property name="identifier">
<value>SpacesStore</value>
</property>
<property name="nodeString">
<value>${solr6.archive.nodeString}</value>
</property>
<property name="numShards">
<value>${solr6.archive.numShards}</value>
</property>
<property name="replicationFactor">
<value>${solr6.archive.replicationFactor}</value>
</property>
</bean>
</list>
</property>
</bean>
<bean id="solrHttpClientFactory" class="org.alfresco.httpclient.HttpClientFactory" init-method="init">
<property name="secureCommsType" value="${solr.secureComms}"/>
<property name="sSLEncryptionParameters" ref="sslEncryptionParameters"/>
<property name="keyResourceLoader" ref="springKeyResourceLoader"/>
<property name="keyStoreParameters" ref="keyStoreParameters"/>
<property name="encryptionParameters" ref="md5EncryptionParameters"/>
<property name="host" value="${solr.host}"/>
<property name="port" value="${solr.port}"/>
<property name="sslPort" value="${solr.port.ssl}"/>
<property name="maxTotalConnections" value="${solr.max.total.connections}"/>
<property name="maxHostConnections" value="${solr.max.host.connections}"/>
</bean>
<bean id="solrAdminClient" class="org.alfresco.repo.solr.SOLRAdminClient" init-method="init">
<property name="solrPingCronExpression" value="${solr.solrPingCronExpression}"/>
<property name="baseUrl" value="${solr.baseUrl}"/>
<property name="scheduler">
<ref bean="searchSchedulerFactory" />
</property>
<property name="storeMappings">
<ref bean="solr6.store.mappings" />
</property>
<property name="useDynamicShardRegistration" value="${solr.useDynamicShardRegistration}" />
</bean>
<bean id="search.solrAdminHTTPCLient" class="org.alfresco.repo.search.impl.solr.SolrAdminHTTPClient" init-method="init">
<property name="httpClientFactory" ref="solrHttpClientFactory"/>
<property name="baseUrl" value="${solr.baseUrl}"/>
</bean>
<bean id="search.lucene.alfresco" class="org.alfresco.repo.search.impl.solr.SolrQueryLanguage" >
<property name="factories">
<list>
<ref bean="search.indexerAndSearcherFactory" />
</list>
</property>
<property name="name">
<value>lucene</value>
</property>
<property name="solrQueryHTTPClient">
<ref bean="search.solrQueryHTTPCLient" />
</property>
</bean>
<bean id="search.solr.alfresco" class="org.alfresco.repo.search.impl.solr.SolrQueryLanguage" >
<property name="factories">
<list>
<ref bean="search.indexerAndSearcherFactory" />
</list>
</property>
<property name="name">
<value>solr-alfresco</value>
</property>
<property name="solrQueryHTTPClient">
<ref bean="search.solrQueryHTTPCLient" />
</property>
</bean>
<bean id="search.lucene.xpath" class="org.alfresco.repo.search.impl.solr.SolrXPathQueryLanguage" >
<property name="solrQueryLanguage" >
<ref bean="search.fts.alfresco.index" />
</property>
<property name="factories">
<list>
<ref bean="search.indexerAndSearcherFactory" />
</list>
</property>
<property name="name">
<value>xpath</value>
</property>
</bean>
<bean id="search.fts.alfresco.index" class="org.alfresco.repo.search.impl.solr.SolrQueryLanguage" >
<property name="factories">
<list>
<ref bean="search.indexerAndSearcherFactory" />
</list>
</property>
<property name="name">
<value>solr-fts-alfresco</value>
</property>
<property name="solrQueryHTTPClient">
<ref bean="search.solrQueryHTTPCLient" />
</property>
</bean>
<!-- Adding solr SQL language. -->
<bean id="search.solr.sql.alfresco" class="org.alfresco.repo.search.impl.solr.SolrQueryLanguage">
<property name="factories">
<list>
<ref bean="search.indexerAndSearcherFactory" />
</list>
</property>
<property name="name">
<value>solr-sql</value>
</property>
<property name="solrQueryHTTPClient">
<ref bean="search.solrSQLQueryHTTPCLient" />
</property>
</bean>
<bean id="search.solr.cmis" class="org.alfresco.repo.search.impl.solr.SolrQueryLanguage" >
<property name="factories">
<list>
<ref bean="search.indexerAndSearcherFactory" />
</list>
</property>
<property name="name">
<value>solr-cmis</value>
</property>
<property name="solrQueryHTTPClient">
<ref bean="search.solrQueryHTTPCLient" />
</property>
</bean>
<bean id="search.indexerAndSearcherFactory" class="org.alfresco.repo.service.StoreRedirectorProxyFactory">
<property name="proxyInterface">
<value>org.alfresco.repo.search.IndexerAndSearcher</value>
</property>
<property name="defaultBinding">
<ref bean="search.solrIndexerAndSearcherFactory"></ref>
</property>
</bean>
<bean id="search.solrIndexerAndSearcherFactory"
class="org.alfresco.repo.search.impl.solr.SolrIndexerAndSearcherFactory">
<property name="nodeService">
<ref bean="mlAwareNodeService" />
</property>
<property name="dictionaryService">
<ref bean="dictionaryService" />
</property>
<property name="namespacePrefixResolver">
<ref bean="namespaceService" />
</property>
<property name="queryRegister">
<ref bean="search.queryRegisterComponent" />
</property>
</bean>
<alias name="search.indexerAndSearcherFactory" alias="search.admLuceneIndexerAndSearcherFactory"/>
<alias name="search.indexerAndSearcherFactory" alias="search.admLuceneUnIndexedIndexerAndSearcherFactory"/>
<bean id="search.categoryService" class="org.alfresco.repo.service.StoreRedirectorProxyFactory">
<property name="proxyInterface">
<value>org.alfresco.service.cmr.search.CategoryService</value>
</property>
<property name="defaultBinding">
<ref bean="search.luceneCategoryService"></ref>
</property>
<property name="redirectedProtocolBindings">
<map>
<entry key="workspace">
<ref bean="search.luceneCategoryService"></ref>
</entry>
<entry key="versionStore">
<ref bean="search.luceneCategoryService"></ref>
</entry>
</map>
</property>
</bean>
<bean id="search.luceneCategoryService" class="org.alfresco.repo.search.impl.solr.SolrCategoryServiceImpl">
<property name="nodeService">
<ref bean="nodeService" />
</property>
<property name="publicNodeService">
<ref bean="NodeService" />
</property>
<property name="tenantService">
<ref bean="tenantService"/>
</property>
<property name="dictionaryService">
<ref bean="dictionaryService" />
</property>
<property name="namespacePrefixResolver">
<ref bean="namespaceService" />
</property>
<property name="indexerAndSearcher">
<ref bean="search.indexerAndSearcherFactory" />
</property>
<property name="queryFetchSize">
<value>${category.queryFetchSize}</value>
</property>
</bean>
<bean id="search.statsService" class="org.alfresco.repo.search.impl.solr.SolrStatsService">
<property name="searcher">
<ref bean="search.indexerAndSearcherFactory" />
</property>
</bean>
<bean id="search.suggesterService" class="org.alfresco.repo.search.impl.solr.SolrSuggesterServiceImpl">
<property name="enabled">
<value>${solr.suggester.enabled}</value>
</property>
<property name="solrQueryHTTPClient">
<ref bean="search.solrQueryHTTPCLient" />
</property>
</bean>
</beans>
<?xml version='1.0' encoding='UTF-8'?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<import resource="../common-search-context.xml" />
<bean id="search.indexerComponent" class="org.alfresco.repo.search.IndexerComponent">
<property name="storeRedirectorProxyFactory">
<ref bean="&amp;search.indexerAndSearcherFactory" />
</property>
</bean>
<bean id="search.searchService" class="org.alfresco.repo.search.SearcherComponent">
<property name="indexerAndSearcherFactory">
<ref bean="search.indexerAndSearcherFactory" />
</property>
</bean>
<bean id="search.admSearchService" class="org.alfresco.repo.search.SearcherComponent">
<property name="indexerAndSearcherFactory">
<ref bean="search.solrIndexerAndSearcherFactory" />
</property>
</bean>
<bean id="search.versionSearchService" class="org.alfresco.repo.search.SearcherComponent">
<property name="indexerAndSearcherFactory">
<ref bean="search.solrIndexerAndSearcherFactory" />
</property>
</bean>
<bean id="search.solrQueryHTTPCLient" class="org.alfresco.repo.search.impl.solr.SolrQueryHTTPClient" init-method="init">
<property name="nodeService">
<ref bean="mlAwareNodeService" />
</property>
<property name="nodeDAO">
<ref bean="nodeDAO" />
</property>
<property name="dictionaryService" ref="dictionaryService"/>
<property name="namespaceDAO" ref="dictionaryDAO" />
<property name="alternativeDictionary" value="${solr.cmis.alternativeDictionary}" />
<property name="permissionService">
<ref bean="permissionService" />
</property>
<property name="tenantService">
<ref bean="tenantService" />
</property>
<property name="repositoryState">
<ref bean="repositoryState" />
</property>
<property name="languageMappings">
<map>
<entry key="lucene" value="alfresco" />
<entry key="solr-alfresco" value="alfresco" />
<entry key="cmis-strict" value="cmis" />
<entry key="cmis-alfresco" value="cmis" />
<entry key="solr-cmis" value="cmis" />
<entry key="fts-alfresco" value="afts" />
<entry key="solr-fts-alfresco" value="afts" />
</map>
</property>
<property name="storeMappings">
<ref bean="solr6.store.mappings" />
</property>
<property name="includeGroupsForRoleAdmin">
<value>${solr.query.includeGroupsForRoleAdmin}</value>
</property>
<property name="maximumResultsFromUnlimitedQuery">
<value>${solr.query.maximumResultsFromUnlimitedQuery}</value>
</property>
<property name="anyDenyDenies" value="${security.anyDenyDenies}"/>
<property name="defaultUnshardedFacetLimit" value="${solr.defaultUnshardedFacetLimit}"/>
<property name="defaultShardedFacetLimit" value="${solr.defaultShardedFacetLimit}"/>
<property name="useDynamicShardRegistration" value="${solr.useDynamicShardRegistration}"/>
</bean>
<bean id="search.solrSQLQueryHTTPCLient" class="org.alfresco.repo.search.impl.solr.SolrSQLHttpClient" init-method="init">
<property name="permissionService">
<ref bean="permissionService" />
</property>
<property name="repositoryState">
<ref bean="repositoryState" />
</property>
<property name="storeMappings">
<ref bean="solr6.store.mappings" />
</property>
<property name="tenantService">
<ref bean="tenantService"/>
</property>
<property name="includeGroupsForRoleAdmin">
<value>${solr.query.includeGroupsForRoleAdmin}</value>
</property>
<property name="anyDenyDenies" value="${security.anyDenyDenies}"/>
<property name="useDynamicShardRegistration" value="${solr.useDynamicShardRegistration}"/>
</bean>
<!--The configurable RPC user mappings - actually a post-processed composite property! -->
<bean id="solr6.store.mappings" class="org.springframework.beans.factory.config.ListFactoryBean">
<property name="singleton" value="false"/>
<property name="sourceList">
<list>
<bean class="org.alfresco.repo.search.impl.solr.SolrStoreMapping">
<property name="beanName">
<value>solrMappingAlfresco</value>
</property>
<property name="httpClientFactory">
<value>solrHttpClientFactory</value>
</property>
<property name="baseUrl">
<value>${solr.baseUrl}/alfresco</value>
</property>
<property name="protocol">
<value>workspace</value>
</property>
<property name="identifier">
<value>SpacesStore</value>
</property>
<property name="nodeString">
<value>${solr6.alfresco.nodeString}</value>
</property>
<property name="numShards">
<value>${solr6.alfresco.numShards}</value>
</property>
<property name="replicationFactor">
<value>${solr6.alfresco.replicationFactor}</value>
</property>
</bean>
<bean class="org.alfresco.repo.search.impl.solr.SolrStoreMapping">
<property name="beanName">
<value>solrMappingArchive</value>
</property>
<property name="httpClientFactory">
<value>solrHttpClientFactory</value>
</property>
<property name="baseUrl">
<value>${solr.baseUrl}/archive</value>
</property>
<property name="protocol">
<value>archive</value>
</property>
<property name="identifier">
<value>SpacesStore</value>
</property>
<property name="nodeString">
<value>${solr6.archive.nodeString}</value>
</property>
<property name="numShards">
<value>${solr6.archive.numShards}</value>
</property>
<property name="replicationFactor">
<value>${solr6.archive.replicationFactor}</value>
</property>
</bean>
</list>
</property>
</bean>
<bean id="solrHttpClientFactory" class="org.alfresco.httpclient.HttpClientFactory" init-method="init">
<property name="secureCommsType" value="${solr.secureComms}"/>
<property name="sSLEncryptionParameters" ref="sslEncryptionParameters"/>
<property name="keyResourceLoader" ref="springKeyResourceLoader"/>
<property name="keyStoreParameters" ref="keyStoreParameters"/>
<property name="encryptionParameters" ref="md5EncryptionParameters"/>
<property name="host" value="${solr.host}"/>
<property name="port" value="${solr.port}"/>
<property name="sslPort" value="${solr.port.ssl}"/>
<property name="maxTotalConnections" value="${solr.max.total.connections}"/>
<property name="maxHostConnections" value="${solr.max.host.connections}"/>
<property name="socketTimeout" value="${solr.http.socket.timeout}"/>
<property name="connectionTimeout" value="${solr.http.connection.timeout}"/>
</bean>
<bean id="solrAdminClient" class="org.alfresco.repo.solr.SOLRAdminClient" init-method="init">
<property name="solrPingCronExpression" value="${solr.solrPingCronExpression}"/>
<property name="baseUrl" value="${solr.baseUrl}"/>
<property name="scheduler">
<ref bean="searchSchedulerFactory" />
</property>
<property name="storeMappings">
<ref bean="solr6.store.mappings" />
</property>
<property name="useDynamicShardRegistration" value="${solr.useDynamicShardRegistration}" />
</bean>
<bean id="search.solrAdminHTTPCLient" class="org.alfresco.repo.search.impl.solr.SolrAdminHTTPClient" init-method="init">
<property name="httpClientFactory" ref="solrHttpClientFactory"/>
<property name="baseUrl" value="${solr.baseUrl}"/>
</bean>
<bean id="search.lucene.alfresco" class="org.alfresco.repo.search.impl.solr.SolrQueryLanguage" >
<property name="factories">
<list>
<ref bean="search.indexerAndSearcherFactory" />
</list>
</property>
<property name="name">
<value>lucene</value>
</property>
<property name="solrQueryHTTPClient">
<ref bean="search.solrQueryHTTPCLient" />
</property>
</bean>
<bean id="search.solr.alfresco" class="org.alfresco.repo.search.impl.solr.SolrQueryLanguage" >
<property name="factories">
<list>
<ref bean="search.indexerAndSearcherFactory" />
</list>
</property>
<property name="name">
<value>solr-alfresco</value>
</property>
<property name="solrQueryHTTPClient">
<ref bean="search.solrQueryHTTPCLient" />
</property>
</bean>
<bean id="search.lucene.xpath" class="org.alfresco.repo.search.impl.solr.SolrXPathQueryLanguage" >
<property name="solrQueryLanguage" >
<ref bean="search.fts.alfresco.index" />
</property>
<property name="factories">
<list>
<ref bean="search.indexerAndSearcherFactory" />
</list>
</property>
<property name="name">
<value>xpath</value>
</property>
</bean>
<bean id="search.fts.alfresco.index" class="org.alfresco.repo.search.impl.solr.SolrQueryLanguage" >
<property name="factories">
<list>
<ref bean="search.indexerAndSearcherFactory" />
</list>
</property>
<property name="name">
<value>solr-fts-alfresco</value>
</property>
<property name="solrQueryHTTPClient">
<ref bean="search.solrQueryHTTPCLient" />
</property>
</bean>
<!-- Adding solr SQL language. -->
<bean id="search.solr.sql.alfresco" class="org.alfresco.repo.search.impl.solr.SolrQueryLanguage">
<property name="factories">
<list>
<ref bean="search.indexerAndSearcherFactory" />
</list>
</property>
<property name="name">
<value>solr-sql</value>
</property>
<property name="solrQueryHTTPClient">
<ref bean="search.solrSQLQueryHTTPCLient" />
</property>
</bean>
<bean id="search.solr.cmis" class="org.alfresco.repo.search.impl.solr.SolrQueryLanguage" >
<property name="factories">
<list>
<ref bean="search.indexerAndSearcherFactory" />
</list>
</property>
<property name="name">
<value>solr-cmis</value>
</property>
<property name="solrQueryHTTPClient">
<ref bean="search.solrQueryHTTPCLient" />
</property>
</bean>
<bean id="search.indexerAndSearcherFactory" class="org.alfresco.repo.service.StoreRedirectorProxyFactory">
<property name="proxyInterface">
<value>org.alfresco.repo.search.IndexerAndSearcher</value>
</property>
<property name="defaultBinding">
<ref bean="search.solrIndexerAndSearcherFactory"></ref>
</property>
</bean>
<bean id="search.solrIndexerAndSearcherFactory"
class="org.alfresco.repo.search.impl.solr.SolrIndexerAndSearcherFactory">
<property name="nodeService">
<ref bean="mlAwareNodeService" />
</property>
<property name="dictionaryService">
<ref bean="dictionaryService" />
</property>
<property name="namespacePrefixResolver">
<ref bean="namespaceService" />
</property>
<property name="queryRegister">
<ref bean="search.queryRegisterComponent" />
</property>
</bean>
<alias name="search.indexerAndSearcherFactory" alias="search.admLuceneIndexerAndSearcherFactory"/>
<alias name="search.indexerAndSearcherFactory" alias="search.admLuceneUnIndexedIndexerAndSearcherFactory"/>
<bean id="search.categoryService" class="org.alfresco.repo.service.StoreRedirectorProxyFactory">
<property name="proxyInterface">
<value>org.alfresco.service.cmr.search.CategoryService</value>
</property>
<property name="defaultBinding">
<ref bean="search.luceneCategoryService"></ref>
</property>
<property name="redirectedProtocolBindings">
<map>
<entry key="workspace">
<ref bean="search.luceneCategoryService"></ref>
</entry>
<entry key="versionStore">
<ref bean="search.luceneCategoryService"></ref>
</entry>
</map>
</property>
</bean>
<bean id="search.luceneCategoryService" class="org.alfresco.repo.search.impl.solr.SolrCategoryServiceImpl">
<property name="nodeService">
<ref bean="nodeService" />
</property>
<property name="publicNodeService">
<ref bean="NodeService" />
</property>
<property name="tenantService">
<ref bean="tenantService"/>
</property>
<property name="dictionaryService">
<ref bean="dictionaryService" />
</property>
<property name="namespacePrefixResolver">
<ref bean="namespaceService" />
</property>
<property name="indexerAndSearcher">
<ref bean="search.indexerAndSearcherFactory" />
</property>
<property name="queryFetchSize">
<value>${category.queryFetchSize}</value>
</property>
</bean>
<bean id="search.statsService" class="org.alfresco.repo.search.impl.solr.SolrStatsService">
<property name="searcher">
<ref bean="search.indexerAndSearcherFactory" />
</property>
</bean>
<bean id="search.suggesterService" class="org.alfresco.repo.search.impl.solr.SolrSuggesterServiceImpl">
<property name="enabled">
<value>${solr.suggester.enabled}</value>
</property>
<property name="solrQueryHTTPClient">
<ref bean="search.solrQueryHTTPCLient" />
</property>
</bean>
</beans>

View File

@@ -1,26 +1,30 @@
solr.host=localhost
solr.port=8083
solr.port.ssl=8446
solr.query.includeGroupsForRoleAdmin=false
solr.query.maximumResultsFromUnlimitedQuery=${system.acl.maxPermissionChecks}
solr.baseUrl=/solr
solr.defaultUnshardedFacetLimit=100
solr.defaultShardedFacetLimit=20
solr.useDynamicShardRegistration=false
#
# Solr Suggester properties
#
solr.suggester.enabled=true
#
# Default unsharded
solr6.alfresco.nodeString=
solr6.alfresco.numShards=1
solr6.alfresco.replicationFactor=1
solr6.archive.nodeString=
solr6.archive.numShards=1
solr6.archive.replicationFactor=1
solr.host=localhost
solr.port=8083
solr.port.ssl=8446
solr.query.includeGroupsForRoleAdmin=false
solr.query.maximumResultsFromUnlimitedQuery=${system.acl.maxPermissionChecks}
solr.baseUrl=/solr
solr.defaultUnshardedFacetLimit=100
solr.defaultShardedFacetLimit=20
solr.useDynamicShardRegistration=false
#
# Solr Suggester properties
#
solr.suggester.enabled=true
#
# Default unsharded
solr6.alfresco.nodeString=
solr6.alfresco.numShards=1
solr6.alfresco.replicationFactor=1
solr6.archive.nodeString=
solr6.archive.numShards=1
solr6.archive.replicationFactor=1
# SOLR Http Client Factory Properties
solr.http.socket.timeout=2000
solr.http.connection.timeout=500