public IndexFacadeUtility() { string indexDirectory = CreateDirectory("lucene-index", parent: TempDirectory); var indexEngine = new LuceneIndexEngine(indexDirectory); var indexingTaskProcessor = new IndexingTaskProcessor(indexEngine); _indexFacade = new IndexFacade(Watcher, Mirror, indexingTaskProcessor, indexEngine) { IdleDelay = TimeSpan.FromMilliseconds(10), ThrottleDelay = TimeSpan.FromMilliseconds(200) }; _indexFacade.Idle += indexFacadeIdle; _indexFacade.ProcessingTaskStarted += processingTaskStarted; _indexFacade.ProcessingTaskFinished += processingTaskFinished; indexingTaskProcessor.FileOpened += indexingTaskProcessorFileOpened; }
public DemoApplication() { var settings = loadSettings(); var config = settings.Get <IndexConfig>(); FileNameRegex = config.FileNameRegex; var regex = new Regex(FileNameRegex, RegexOptions.Compiled | RegexOptions.IgnoreCase); _indexFacade = IndexFacade.Create( fileNameFilter: fileName => regex.IsMatch(fileName), additionalWordChars: config.AdditionalWordChars, maxWordLength: config.MaxWordLength, caseSensitive: config.CaseSensitive, indexDirectory: config.IndexDirectory, maxFileLength: config.MaxFileLength, maxReadAttempts: config.MaxReadAttempts); foreach (var directory in config.Directories) { _indexFacade.Watch(new WatchTarget(EntryType.Directory, Path.GetFullPath(directory.Path))); } foreach (var file in config.Files) { _indexFacade.Watch(new WatchTarget(EntryType.File, Path.GetFullPath(file.Path))); } _indexFacade.ProcessingTaskStarted += processingTaskStarted; _indexFacade.ProcessingTaskFinished += processingTaskFinished; _indexFacade.FileSystemDeniedAccess += fileSystemDeniedAccess; _indexFacade.BackgroundLoopFailed += backgroundLoopFailed; _indexFacade.FileCreated += fileCreated; _indexFacade.FileDeleted += fileDeleted; _indexFacade.FileMoved += fileMoved; _indexFacade.Idle += indexFacadeIdle; }