/// <summary> /// Prüft, ob ein Element veraltet ist und deswegen indexiert werden muss. /// <para>Das Element kann veraltet sein, indem es entweder noch gar nicht vorhanden ist oder wenn sich der Hash-Wert - also der Inhalt - verändert hat. /// Andernfalls muss man keine Anfrage an den Index-Service senden.</para> /// </summary> /// <param name="element">Das zu prüfende Element.</param> /// <returns>Gibt wahr zurück, wenn es veraltet ist und indexiert werden muss, ansonsten falsch.</returns> private bool HasContentChanged(Element element) { using ElementLogContext context = new ElementLogContext(); var elementLog = context.GetElementLog(element, _jobConfig.Id); return(elementLog == null || !elementLog.Hash.Equals(element.Hash)); }
/// <summary> /// Prüft, ob das Element bereits im Index ist. /// </summary> /// <param name="element">Das Element, das auf Vorhandensein im Index geprüft werden soll.</param> /// <returns>Wahr, wenn es bereits vorhanden ist, ansonsten falsch.</returns> private bool IsAlreadyIndexed(Element element) { using ElementLogContext context = new ElementLogContext(); var elementLog = context.GetElementLog(element, _jobConfig.Id); return(elementLog != null); }
/// <summary> /// /// </summary> /// <param name="element"></param> /// <param name="context"></param> /// <param name="isIndexingSuccess"></param> private void MarkElementFound(Element element, ElementLogContext context, bool isIndexingSuccess) { if (isIndexingSuccess) { context.SetElementFound(element, _jobConfig.Id, true); _log.Info(LocalizationService.FormatResourceString("CrawlerIndexerInterfaceMessage06", element.Id)); StatisticService.GetService(_jobConfig.Id).IncreaseIndexedDocumentsCount(); } else { _log.Error(LocalizationService.FormatResourceString("CrawlerIndexerInterfaceMessage08", element.Id)); ErrorControlService.GetService().IncreaseErrorCount(); } }
/// <summary> /// /// </summary> /// <param name="element"></param> /// <param name="isAlreadyIndexed"></param> /// <param name="hasContentChanged"></param> /// <param name="context"></param> /// <returns></returns> private bool RemoveWhenChanged(Element element, bool isAlreadyIndexed, bool hasContentChanged, ElementLogContext context) { if (isAlreadyIndexed) { if (hasContentChanged) { _log.Info(LocalizationService.FormatResourceString("CrawlerIndexerInterfaceMessage02", element.Id)); RemoveElementCompletly(element); return(true); } else { _log.Info(LocalizationService.FormatResourceString("CrawlerIndexerInterfaceMessage07", element.Id)); StatisticService.GetService(_jobConfig.Id).IncreaseUnchangedDocumentsCount(); context.SetElementFound(element, _jobConfig.Id, true); return(false); } } return(true); }