public void DeleteIndex(string indexName)
{
lock (this)
{
if (_writers.TryGetValue(indexName, out var writer))
{
writer.IsClosing = true;
writer.Dispose();
}
if (_indexPools.TryRemove(indexName, out var reader))
{
reader.Dispose();
}
_timestamps.TryRemove(indexName, out var timestamp);
var indexFolder = PathExtensions.Combine(_rootPath, indexName);
if (Directory.Exists(indexFolder))
{
try
{
Directory.Delete(indexFolder, true);
}
catch { }
}
_writers.TryRemove(indexName, out writer);
}
}