Search reindexing
How often are searches reindexed? Do I have to manually update the index or will it automatically index new content and remove pages that have been deleted from the site?
Hi Steve,
To answer your question, indexes are updated each time you publish (content like News, blogs etc.. and static html is reindexed when publishing pags). Also you are able to reindex the search manually if you wish. If you go to Adminstration >> Search and Indexes, go to the search you wish you reindex, click on Actions and then Reindex.
Also when your indexes are updated, the previous indexes will be deleted and then recreated again with the newly updated content.
All the best,
Grace Hallwachs
the Telerik team
Is there a way to trigger the reindexing through code, we have an issue in our project, wherein the Sitefinity search index is not getting reindexing even after publishing custom modules. Client is not quite comfortable indexing manually
Hello Mani,
Actually in this case it is much better to open a support ticket to investigate the cause why your content items do not enter in the search index.
Anyway what you can do is create a scheduled task as follows:
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Security;using System.Web.SessionState;using Telerik.Sitefinity.Abstractions;using Telerik.Sitefinity.Data;using Telerik.Sitefinity.Scheduling; namespace SitefinityWebApp public class Global : System.Web.HttpApplication protected void Application_Start(object sender, EventArgs e) Bootstrapper.Initialized += new EventHandler<ExecutedEventArgs>(this.OnSitefinityAppInitialized); private void OnSitefinityAppInitialized(object sender, EventArgs args) SchedulingManager manager = SchedulingManager.GetManager(); string myKey = "239CE594-5613-42EC-AC57-8E2B33B28065"; var count = manager.GetTaskData().Where(i => i.Key == myKey).ToList().Count; if (count == 0) PipeScheduledTask newTask = new PipeScheduledTask() Key = myKey, ExecuteTime = DateTime.UtcNow.AddSeconds(10), ; manager.AddTask(newTask); manager.SaveChanges(); public class PipeScheduledTask : ScheduledTask public PipeScheduledTask() public override void ExecuteTask() //Your logic here.. SchedulingManager schedulingManager = SchedulingManager.GetManager(); PipeScheduledTask newTask = new PipeScheduledTask() Key = this.Key, ExecuteTime = DateTime.UtcNow.AddSeconds(10) ; schedulingManager.AddTask(newTask); SchedulingManager.RescheduleNextRun(); schedulingManager.SaveChanges(); public override string TaskName get return "SitefinityWebApp.PipeScheduledTask";