public override bool PerformRun() { if (!_fullTextConfig.IsFullTextIndexingEnabled()) { return(false); } if (!_examineManager.TryGetIndex("ExternalIndex", out IIndex index)) { _logger.Error <PerformCacheTasks>(new InvalidOperationException("No index found by name ExternalIndex")); return(false); } try { using (_profilingLogger.DebugDuration <PerformCacheTasks>("PerformCacheTasks", "PerformCacheTasks done")) { var tasks = _cacheService.GetCacheTasks(); foreach (var task in tasks) { _cacheService.SetTaskAsStarted(task); } foreach (var task in tasks) { var content = _contentService.GetById(task.NodeId); if (content != null) { _cacheService.AddToCache(task.NodeId); index.IndexItems(_valueSetBuilder.GetValueSets(content)); } else { _cacheService.DeleteFromCache(task.NodeId); } _cacheService.DeleteCacheTask(task.Id); } } } catch (Exception e) { _logger.Error <PerformCacheTasks>(e); } return(true); }
public bool ReindexNode(string nodeIds) { if (!_fullTextConfig.IsFullTextIndexingEnabled()) { _logger.Debug <IndexController>("FullTextIndexing is not enabled"); return(false); } if (!_examineManager.TryGetIndex("ExternalIndex", out IIndex index)) { _logger.Error <IndexController>(new InvalidOperationException("No index found by name ExternalIndex")); return(false); } if (nodeIds == "*") { foreach (var content in Umbraco.ContentAtRoot()) { _cacheService.AddToCache(content.Id); foreach (var descendant in content.Descendants()) { _cacheService.AddToCache(descendant.Id); } } index.CreateIndex(); _indexRebuilder.RebuildIndex("ExternalIndex"); } else { var ids = nodeIds.Split(',').Select(x => int.Parse(x)); foreach (var id in ids) { _cacheService.AddToCache(id); } index.IndexItems(_valueSetBuilder.GetValueSets(_contentService.GetByIds(ids).ToArray())); } return(true); }