Search Reindexing due to Search Results not showing expected results

Overview

Occasionally the search index for a portal, or multiple portals, becomes corrupt and is missing items in search results. With corruption in the Search index, it can produce inaccurate results in the Search Results when a user searches for a specific keyword. Search crawlers that are failing to run is also a symptom of index file corruption.

 

Prerequisites

 

Diagnosis

The root cause for the corruption could be something transient like a file being locked, in which case the best way to resolve the issue is to rebuild the search index. A Search crawler that is failing to run is also a symptom of index file corruption.

 

Solution

To completely re-index the Search function for ALL DNN portals, please follow the steps below: 

  1. Create a backup of your database and add all website files to a .zip archive.
  2. Delete the content of the Search folder from [SiteRootDirectory]/App_Data/Search.

    Note: If you are unable to delete the content due to a file lock, recycle the application pool to release the file lock.
  3. From the Persona Bar, navigate to Settings > Scheduler > Scheduler.
  4. Click on the pencil icon next to the Search: Site Crawler task and disable the Enable Schedule option. Click Update.
  5. Perform the same action for the URL Crawler and File Crawler tasks.

    2020-02-22_22-18-51.png

  6. Open the SQL console:
    • DNN 7/8: Navigate to Host > Advanced Settings > SQL.
    • DNN 9: Navigate to Settings > SQL Console.
  7. After confirming you made a database backup in Step 1. above, execute the following query:
    -- start reindex for all portals, file crawler
    DELETE SH FROM ScheduleHistory SH
    INNER JOIN Schedule S
    ON SH.ScheduleID = S.ScheduleID
    WHERE S.TypeFullName = 'DotNetNuke.Professional.SearchCrawler.FileCrawler.FileCrawler, DotNetNuke.Professional.SearchCrawler'
    OR S.TypeFullName = 'DotNetNuke.Professional.SearchCrawler.FileCrawler.FileCrawler,DotNetNuke.Professional.SearchCrawler'
  8. From the Persona Bar, navigate to Settings > Scheduler > Scheduler.
  9. Click on the pencil icon next to the Search: Site Crawler task and turn on the Enable Schedule option. Click Update.
  10. Turn on the Enable Schedule option for the File Crawler and URL Crawler tasks.
  11. From the Persona Bar, navigate to Settings > Site Settings > Search > Basic Settings.
  12. Click on the Re-index Content and Re-index Host Content buttons.
  13. Navigate to Settings > Scheduler > Scheduler to confirm that the tasks are going to be executed. Otherwise, go to the settings of each Crawler task and click Run Now.
  14. Clear cache:
    • DNN 7/8: Tools > Clear Cache.
    • DNN 9: Settings > Servers > Clear Cache.


Testing

To confirm that the reindex has been successful by:

  1. Once the tasks are complete, navigate to Settings > Scheduler > History to check if there are any errors.
  2. Enter a page name in the Search Results to see if it returns any results.

Comments

0 comments

Please sign in to leave a comment.