Text Searches Return No Results


If search results aren't returning for text queries, try one or more of the following remedies to resolve the issue.

Note
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, but in most cases, it takes less time than that. While the index is building, the same queries could return different results as more data is added to the index.

Indexing Disabled

You must enable indexing in order for search to work.

Remedy

To enable indexing:
  1. Navigate to the root DSS folder ([Drive]:\[path-to-DSS-root-directory]).
  2. Open Search.config in a text editor.The example below displays generic code contained within Search.config.
    Search.config example
    <?xml version="1.0"?>
    <configuration>
        <configSections>
            <section name="Search"
                type="Ingeniux.Search.Configuration.IndexingConfiguration, Ingeniux.Search"/>
        </configSections>
        <Search indexLocation="App_Data\LuceneIndex"
            synonymsLocation="[Drive]:\[path to DSS root directory]\published\iss-config\Synonyms.xml"
            indexingEnabled="true" queryMaxClauses="1024">
            <Hiliter startTag="&lt;strong&gt;" endTag="&lt;/strong&gt;"/>
            <Settings>
                <add name="defaultIndexingAnalyzer"
                    value="Ingeniux.Search.Analyzers.StemmingIndexingAnalyzer, Ingeniux.Search"/>
                <add name="defaultQueryAnalyzer"
                    value="Ingeniux.Search.Analyzers.StemmingQueryAnalyzer, Ingeniux.Search"/>
                <add name="QueryFieldsFileLocation"
                    value="[Drive]:\[path to DSS root directory]\[subfolder(s)]\QueryFields.xml"/>
                <add name="DocumentBoostByFacetsFileLocation"
                    value="App_Data\DocumentBoostByFacetsFileLocation.xml"/>
                <add name="GSearchFieldMapping"
                    value="[Drive]:\[path to DSS root directory]\[subfolder(s)]\GSearchFieldMapping.xml"/>
            </Settings>
            <IndexingSources>
                <add name="CMSPublishedContent" type="Ingeniux.Runtime.Search.DssContentSearchSource"
                    settingsFile="[Drive]:\[path to DSS root directory]\settings\SearchSource.config"/>
                <add name="KeyMatch" type="Ingeniux.Search.KeyMatchSearchDocumentSource"
                    settingsFile="App_Data\KeymatchSource.config"/>
                <add name="SpellCheckDictionary" type="Ingeniux.Search.SpellCheckerSearchDocumentSource"
                    settingsFile="App_Data\spellcheckerSource.config"/>
                <add name="SiteCrawlerSource" type="Ingeniux.Search.HtmlSiteSource"
                    settingsFile="App_Data\sitecrawlerSource.config"/>
                <add name="Analytics" type="Ingeniux.Search.AnalyticsSearchDocumentSource"
                    settingsFile="App_Data\analyticSource.config"/>        
            </IndexingSources>
            <SearchProfiles>
                <add name="Independent-search-profile-1">
                    <Sources>
                        <add name="KeyMatch"/>
                        <add name="SpellCheckDictionary"/>
                        <add name="analytics"/>
                    </Sources>
                </add>
            </SearchProfiles>
        </Search>
    </configuration>
  3. Verify the following code within the <Search> element. .
    1. Enable indexing by setting the @indexingEnabled value to true.
      Note
      The default value is false.
    2. Verify that a valid indexing location has been specified for the @indexLocation value.
      Note
      The default value is App_data\LuceneIndex, which is sufficient unless you intend to set a custom indexing location.
    For example, the <Search> element and attributes should look similar to the following code:
    Search element
    <Search indexlocation="App_Data\LuceneIndex" indexingEnabled="true">
  4. Refer to the Search.config code sample in Configuring Search.config to ensure other settings are correct.
  5. Save and close Search.config.

Indexing Not Generated

You may have run a query against the Lucene indexes that did not return the result set that you expect. It is possible that your data was not indexed or not indexed properly.

Note
Stop words are those that are excluded from searches to help index pages faster. The following list contains Lucene stop words: a, an, and, are, as, at, be, but, by, for, if, in, into, is, it, no, not, of, on, or, such, that, the, their, then, there, these, they, this, to, was, will, with.

Remedy

If your data is not indexing, try re-indexing with the following steps:

  1. Recycle the DSS app pool in Internet Information Services (IIS).
  2. Delete existing index files (e.g., Delete the main index files in the App_Data\LuceneIndex.) folder.
  3. Run either a full or incremental publish.
  4. In a browser, enter an address to the DSS website (e.g., http://website.com/dss/x4.xml). This step is what triggers the re-indexing of content.

Incorrect Paths

If you are not getting any results back from a known query, there are several paths that you should verify to be sure that they are correct.

Remedy

Verify the following paths:
  1. Within Search.config, where the value of @type is Ingeniux.Runtime.Search.DssContentSearchSource, ensure that the value of the @settingsFile attribute on the <add> element is correct.
    CMSPublishedContent setting
    <add name="CMSPublishedContent" type="Ingeniux.Runtime.Search.DssContentSearchSource" settingsFile="[Drive]:\[DSS-path]\settings\SearchSource.config" />
    Note
    Use an absolute path to SearchSource.config. The paths to the other configuration files can be relative (e.g., App_Data\[config-name].config).
  2. The Spellchecker, Analytics, and Keymatch search source configuration files create their own indexes, independent of the main index set that is defined in Search.config.
    • Verify that the paths to their respective folders, where Lucene creates its indexing files (e.g., App_Data/KeyMatch_Index), are properly set in the indexLocation attribute on the Search element.
    • With respect to KeymatchSource.config, if you have included a path to a *.csv file, verify that its path is valid.
    • With respect to SpellcheckerSource.config, if you have included a path to a dictionary file, verify that its path is valid.
    • With respect to SpellcheckerSource.config, if you have included a path to the taxonomy tree file, verify that its path is valid.