public void ReIndex()
{
reIndex = true;
this.Index();
SearchProvider.Providers.Values.Where(p => p.IsAlive).ToList().ForEach(p => ((SearchProvider)p.Target).Reload());
IndexReader _Reader = indexWriter.GetReader().Reopen();
BexisIndexSearcher.searcher.IndexReader.Dispose();
BexisIndexSearcher.searcher.Dispose();
BexisIndexSearcher.searcher = new IndexSearcher(_Reader);
BexisIndexSearcher._Reader = _Reader;
indexWriter.GetReader().Dispose();
indexWriter.Dispose();
IndexReader _ReaderAutocomplete = autoCompleteIndexWriter.GetReader().Reopen();
BexisIndexSearcher.autoCompleteSearcher.IndexReader.Dispose();
BexisIndexSearcher.autoCompleteSearcher.Dispose();
BexisIndexSearcher.autoCompleteSearcher = new IndexSearcher(_ReaderAutocomplete);
BexisIndexSearcher.autoCompleteIndexReader = _ReaderAutocomplete;
autoCompleteIndexWriter.GetReader().Dispose();
autoCompleteIndexWriter.Dispose();
reIndex = false;
}