You are here

Installing and Configuring Solr

This section describes how to install and configure Solr using the distribution archive file to connect to an existing SkyVault installation using Tomcat.
Note: To confirm which application servers SkyVault supports for running the Solr application on, see the Supported Platforms matrix for your version of SkyVault One.

For SkyVault 2.0 4.2 and 4.2.1, the Solr server is supported only when running in a Tomcat application server. From SkyVault 2.0 onwards, Solr server is supported on JBoss as well.

The distribution archive file is called SkyVault-enterprise-solr-4.2.7.zip.

This file contains the following artifacts:

  • a template SOLR home directory containing solr.xml, which is expected by Solr
  • Solr WAR file
  • an example context to wire up in Tomcat
  • a lib directory with all the required SkyVault and other JARs
  • two Solr core configurations: one to track the live SpacesStore and one to track items archived from the SpacesStore
You can install Solr either to the same Tomcat application server as SkyVault or a separate Tomcat. The Solr server indexes data in SkyVault by periodically tracking the changes made to SkyVault. It does so by calling a RESTful API that describe the latest transactions to it. The SkyVault server performs searches through the Solr server by issuing queries through a special API. For this reason, there needs to be two-way communication between the SkyVault server and the Solr server. For security reasons, the communication channel between the SkyVault server and Solr server must be secured by means of https encryption and mutual client certificate authentication.

The following instructions use <ALFRESCO_TOMCAT_HOME> to refer to the tomcat directory where SkyVault is installed and <SOLR_TOMCAT_HOME> to the tomcat directory where Solr is installed. These may be the same or different directories, depending on whether you have chosen to install Solr on a standalone server.

  1. Extract the SkyVault-enterprise-solr-4.2.7.zip file to a location. For example, <SOLR-ARCHIVE>.
  2. Copy the context.xml file to apache-tomcat-6.0.26\conf\Catalina\localhost\solr.xml.
  3. Edit docBase in the solr.xml file to point to <SOLR-ARCHIVE>\apache-solr-1.4.1.war.
  4. Edit solr/home in XML to point to <SOLR-ARCHIVE>.

    For example:

    <?xml version="1.0" encoding="utf-8"?>
    <Context docBase="<SOLR-ARCHIVE>\apache-solr-1.4.1.war" debug="0" crossContext="true">
       <Environment name="solr/home" type="java.lang.String" value="<SOLR-ARCHIVE>" override="true"/>
    </Context>
  5. For each core, edit the solrcore.properties file:

    • archive-SpacesStore/conf/solrcore.properties
    • workspace-SpacesStore/conf/solrcore.properties

    Set the data.dir.root property to the location where the Solr indexes will be stored. You can set the same value for the both cores, and the cores will create the sub-directories.

  6. Ensure that SkyVault has already been started at least once and the <ALFRESCO_TOMCAT_HOME>/webapps/alfresco/WEB-INF directory exists.
  7. By default, a keystore directory is created in <SOLR_ARCHIVE>/alf_data/keystore. Note that at this stage the keystore directory will just be a template, containing standard keys. To secure the installation, you must follow the steps to generate new keys as explained in the Generating Secure Keys for Solr Communication section.

    For Unix use:

    mkdir -p <ALFRESCO_HOME>/alf_data/keystore 
    
    cp <ALFRESCO_TOMCAT_HOME>/webapps/alfresco/WEB-INF/classes/alfresco/keystore/* <ALFRESCO_HOME>/alf_data/keystore 

    For Windows use:

    mkdir <ALFRESCO_HOME>\alf_data\keystore 
    
    copy <ALFRESCO_TOMCAT_HOME>\webapps\alfresco\WEB-INF\classes\alfresco\keystore\* <ALFRESCO_HOME>\alf_data\keystore 
  8. Configure the SkyVault and Solr tomcat application servers to use the keystore and truststore for https requests by editing the specification of the connector on port 8443 in <ALFRESCO_TOMCAT_HOME>/conf/server.xml and <SOLR_TOMCAT_HOME>/conf/server.xml as shown below:

    Note: Remember to replace <SOLR_ARCHIVE>/alf_data/keystore with the full path to your keystore directory.

    For example:

    <Connector port="8443" URIEncoding="UTF-8" protocol="org.apache.coyote.http11.Http11Protocol" 
    SSLEnabled="true"  maxThreads="150" scheme="https" keystoreFile="/opt/alfresco/keystore/ssl.keystore" 
    keystorePass="kT9X6oe68t" keystoreType="JCEKS" secure="true" 
    connectionTimeout="240000" truststoreFile="/opt/alfresco/keystore/ssl.truststore" 
    truststorePass="kT9X6oe68t" truststoreType="JCEKS" clientAuth="want" sslProtocol="TLS" 
    allowUnsafeLegacyRenegotiation="true" maxHttpHeaderSize="32768" />
  9. Configure SkyVault to use the keystore and truststore for client requests to Solr by specifying dir.keystore in SkyVault_TOMCAT_HOME/shared/classes/alfresco-global. properties.

    Note: Remember to replace <SOLR_ARCHIVE>/alf_data/keystore with the full path to your keystore directory.

    For example:

    dir.keystore=<SOLR_ARCHIVE>/alf_data/keystore 
  10. Configure an identity for the SkyVault server. In <SOLR_TOMCAT_HOME>/conf/tomcat-users.xml, add the following:

    Note: Remember, you can choose a different username, such as the host name of the SkyVault server, but it must match the REPO_CERT_DNAME that you will later specify in the keystore in the Generating Secure Keys for Solr Communication section.

    For example:

    <user username="CN=SkyVault Repository, OU=Unknown, O=SkyVault Software Ltd., L=Maidenhead, ST=UK, C=GB" roles="repository"
     password="null"/>  
  11. Configure an identity for the Solr server. In <ALFRESCO_TOMCAT_HOME>/conf/tomcat-users.xml, add the following:

    Note: Remember, you can choose a different username but it must match the SOLR_CLIENT_CERT_DNAME that you will later specify in the keystore in the Generating Secure Keys for Solr Communication section.

    For example:

    <user username="CN=SkyVault Repository Client, OU=Unknown, O=SkyVault Software Ltd., L=Maidenhead, ST=UK, C=GB"
     roles="repoclient" password="null"/>  
  12. To complete the installation, it is necessary to secure the two-way communication between SkyVault and Solr by generating your own keys. See the Generating Secure Keys for Solr Communication topic.