Configuring the InSite Search Index


In Ingeniux CMS 9.0, InSite Search comes installed by default. Configuration options are located in the Search.config file at the root of a DSS site. 

To configure the InSite Search index:

  1. Navigate to the Search.config file at the root of your DSS site.
    <?xml version="1.0"?>
    <configuration>
        <configSections>
            <section name="Search"
                type="Ingeniux.Search.Configuration.IndexingConfiguration, Ingeniux.Search"/>
        </configSections>
        <Search indexLocation="App_Data\LuceneIndex" 
                   indexingEnabled="true" 
                   queryMaxClauses="1024">
            <Hiliter startTag="<strong>" endTag="</strong>"/>
            <Settings>
    			<add name="defaultIndexingAnalyzer" value="Ingeniux.Search.Analyzers.StemmingIndexingAnalyzer, Ingeniux.Search" />
    			<add name="defaultQueryAnalyzer" value="Ingeniux.Search.Analyzers.StemmingQueryAnalyzer, Ingeniux.Search" />
            </Settings>
            <IndexingSources>
                <add name="CMSPublishedContent" type="Ingeniux.Runtime.Search.DssContentSearchSource"
                    settingsFile="C:\dss\pub\settings\SearchSource.config"/>
                <add name="SearchNav" type="Ingeniux.Runtime.Search.DssContentSearchSource"
                    settingsFile="C:\dss\pub\settings\SearchSource.config"/>
                <add name="KeyMatch" type="Ingeniux.Search.KeyMatchSearchDocumentSource"
                    settingsFile="App_Data\KeymatchSource.config"/>           
                <add name="IntranetDirectory" type="Cartella.Search.LdapSearchSourceSource"
                    settingsFile="App_Data\ldapSearchSource.config"/>
            </IndexingSources>
            <SearchProfiles>
                <add name="Profile1">
                    <Sources>
                        <add name="CMSPublishedContent" />
                        <add name="SearchNav" />
                        <add name="KeyMatch" />
                    </Sources>
                </add>
            </SearchProfiles>
        </Search>
    </configuration>
            
  2. Configure the Search.config file:
    • Ensure that the indexLocation attribute within the Search element is a valid path within your DSS directory structure. This path is the physical location where the index is stored.
    • Set the indexingEnabled attribute within the Search element to true.

      Note: In some cases, such as load-balanced environments, you may only want one instance performing the indexing.

    • The IndexingSources element includes all sources that are indexed. The InSite Search library can index from multiple sources, and each source has its own configuration file. At least one source must be listed. For example, included by default is a DSS search source type with the value of Ingeniux.Runtime.Search.DSSContentSearchSource, Cartella.Search.CartellaSearchSource, and Cartella.Search.LdapSearchSourceSource. Each of these index sources include an example of a path to the source's configuration file, located in the CMS site's publishing target folder.

      Replace the example settingsFile value with one that corresponds to your system path.

      Note: In turn, each search source has its own configuration file.

  3. Configure search sources:
    • Navigate to the appropriate searchSource.config file referenced by Search.config. A CMS search source is located at [siteRoot]\App_Data\[pubTarget]\Settings\SearchSource.config. The Cartella search source is located at [siteRoot]\Cartella.config.
    • Open a SearchSource.config file in an editor.
      
      <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <configSections>
          <section name="Search" type="Ingeniux.Search.Configuration.IndexingSourceConfig, Ingeniux.Search" />
        </configSections>
        <Search>
          <Settings>
            <!-- The following are set in Administrator > InSite Search Configuration > Settings tab > Search Settings: -->
            <add name="PagesBatchSize" value="2500" />
            <add name="DocumentsBatchSize" value="5000" />
            <!-- The following are set in Administrator > InSite Search Configuration > Assets: (Default documentLocations value is null.) -->
            <add name="documentLocations" value="documents/pdf" />
            <!-- The following are set in Administrator > InSite Search Configuration > Settings tab > Custom Settings: -->
            <add name="documentComponents" value="BinaryDocument" />
            <add name="EnabledDepthBoostFactor" value="false" />       
          </Settings>
          <DefaultFields>
            <!-- The following are set in Administrator > InSite Search Configuration > Fields tab > Field Exclusions: -->
            <add name="Banner" includeInSearchResults="false" boost="1" />
            <!-- The following are set in Administrator > InSite Search Configuration > Fields tab > Field Boosts: -->
            <add name="BodyCopy" includeInSearchResults="true" boost="1" />      
          </DefaultFields>
          <Types>
            <!-- The following are set in Administrator > InSite Search Configuration > Schemas tab > Schema Exclusions: -->
            <add type="SearchResultPage" friendlyName="Search Result Page" includeInGlobalSearch="false" />
            <!-- The following are set in Administrator > InSite Search Configuration > Schemas tab > Schema Boosts and Fields: -->
            <add type="DetailPage" friendlyName="Detail Page" includeInGlobalSearch="true" boost="1">
              <Fields>
            <!-- The following are set in Administrator > InSite Search Configuration > Schemas tab > [Schema Type] > Add Field Exclusion option: -->
                <add type="SEO" includeInSearchResults="false" boost="1" />
            <!-- The following are set in Administrator > InSite Search Configuration > Schemas tab > [Schema Type] > Add Field Boost option: -->
                <add type="DescriptiveTitle" includeInSearchResults="true" boost="1.2" />   
              </Fields>
            </add>
          </Types>
          <Assets>
            <add type="xslt" friendlyName="XSLT Stylesheet" includeInGlobalSearch="false" />
            <add type="Document" friendlyName="Document" includeInGlobalSearch="true">
                     <Fields>
                          <add type="Language" includeInSearchResults="false" boost="1" />
                          <add type="FileFormat" includeInSearchResults="true" boost="3" />   
                      </Fields>
           </add>
          </Assets>    
        </Search>
      </configuration>
              
    • The documentComponents/BinaryDocument name/value pair specifies that binary document components will be indexed. It also attaches the document asset as part of the component's searchable text.

      To index binary documents within a particular search type, ensure that the BinaryDocument/documentComponents name/value pair has been added to the appropriate add element.

    • Page names are indexed. By default, name is added as a default field on publish. includeInSearchResults is set to true by default, with a boost value of 2. A field's boost value affects how search results display. You can change the boost values for types.

    Note: If you need to roll back to this file's default settings, perform either an incremental or a full publish. Also, you must perform a publish to propogate your newly saved settings.

  4. Set up document indexing:
    1. To enable indexing of PDFs if applicable, refer to Adobe Reader iFilter. Download the appropriate executable for your operating system:
    2. To enable indexing of Microsoft Word documents if applicable, refer to Microsoft Office iFilter package:
      1. To download the Microsoft 2010 filters.

        Note: Before installation, read the installation instructions on the Microsoft site.

      2. After installing the initial filters, install the Filter Pack SP2 update.
    3. Make sure to install these packages on the DSS.
    4. Rebuild the search index.

Search Index Summary

Files should populate the folder in the path that you provided in the attribute value of IndexLocation. Searches performed during or prior to index setup return no results. Depending on site size and hardware, it could take a few minutes for the index to complete. In most cases, it takes less time. While the index is building, the same queries could return different results as more data is added to the index.

Note: Each publish clears the SearchSource.config file. Developers may need to create a custom hook to restore the configuration file.