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.
    <?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 indexlocation="App_Data\LuceneIndex" indexingEnabled="true">
  4. 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, ensure that the value of the @settingsFile attribute on the <add> element is correct.
    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.