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

- add HttpClientFactory timeout properties in the SOLR contexts

(cherry picked from commit cc340a33aa)
This commit is contained in:
CezarLeahu
2020-04-21 14:59:56 +03:00
committed by Cezar.Leahu
parent f85f5f9d71
commit 7e4cbd7e23
7 changed files with 773 additions and 754 deletions

16
pom.xml
View File

@@ -36,8 +36,8 @@
<maven.build.sourceVersion>11</maven.build.sourceVersion>
<dependency.alfresco-data-model.version>8.50.7</dependency.alfresco-data-model.version>
<dependency.alfresco-core.version>7.29</dependency.alfresco-core.version>
<dependency.alfresco-data-model.version>8.50.10</dependency.alfresco-data-model.version>
<dependency.alfresco-core.version>7.31</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>
@@ -970,7 +970,7 @@
<dependency>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-data-model</artifactId>
<version>${dependency.alfresco-data-model.version}</version>
<version>${dependency.alfresco-data-model.version}</version>
</dependency>
<dependency>
<groupId>org.alfresco</groupId>
@@ -1032,14 +1032,14 @@
<artifactId>groovy-all</artifactId>
<version>2.4.18</version>
<classifier>indy</classifier>
<scope>test</scope>
</dependency>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.chemistry.opencmis</groupId>
<artifactId>chemistry-opencmis-client-impl</artifactId>
<version>${dependency.opencmis.version}</version>
<scope>test</scope>
</dependency>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.taglibs</groupId>
<artifactId>taglibs-standard-spec</artifactId>
@@ -1415,5 +1415,5 @@
</plugins>
</pluginManagement>
</build>
</project>

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