Browse Source

only initialize search index on startup (#193)

pull/195/head
Jason Dove 5 years ago committed by GitHub
parent
commit
5fd0cc5469
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 22
      ErsatzTV.Infrastructure/Search/SearchIndex.cs

22
ErsatzTV.Infrastructure/Search/SearchIndex.cs

@ -56,26 +56,32 @@ namespace ErsatzTV.Infrastructure.Search @@ -56,26 +56,32 @@ namespace ErsatzTV.Infrastructure.Search
private FSDirectory _directory;
private IndexWriter _writer;
private bool _initialized;
public SearchIndex(ILogger<SearchIndex> logger)
{
_logger = logger;
_cultureInfos = CultureInfo.GetCultures(CultureTypes.NeutralCultures).ToList();
_initialized = false;
}
public int Version => 9;
public Task<bool> Initialize(ILocalFileSystem localFileSystem)
{
localFileSystem.EnsureFolderExists(FileSystemLayout.SearchIndexFolder);
_directory = FSDirectory.Open(FileSystemLayout.SearchIndexFolder);
var analyzer = new StandardAnalyzer(AppLuceneVersion);
var indexConfig = new IndexWriterConfig(AppLuceneVersion, analyzer)
{ OpenMode = OpenMode.CREATE_OR_APPEND };
_writer = new IndexWriter(_directory, indexConfig);
if (!_initialized)
{
localFileSystem.EnsureFolderExists(FileSystemLayout.SearchIndexFolder);
_directory = FSDirectory.Open(FileSystemLayout.SearchIndexFolder);
var analyzer = new StandardAnalyzer(AppLuceneVersion);
var indexConfig = new IndexWriterConfig(AppLuceneVersion, analyzer)
{ OpenMode = OpenMode.CREATE_OR_APPEND };
_writer = new IndexWriter(_directory, indexConfig);
_initialized = true;
}
return Task.FromResult(true);
return Task.FromResult(_initialized);
}
public async Task<Unit> Rebuild(ISearchRepository searchRepository, List<int> itemIds)

Loading…
Cancel
Save