diff --git a/src/Examine.Lucene/Examine.Lucene.csproj b/src/Examine.Lucene/Examine.Lucene.csproj index 0ddf6cad..bf82a0b4 100644 --- a/src/Examine.Lucene/Examine.Lucene.csproj +++ b/src/Examine.Lucene/Examine.Lucene.csproj @@ -27,9 +27,9 @@ - 4.8.0-beta00016 + 4.8.0-beta00017 - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Examine.Lucene/ExamineTaxonomyReplicator.cs b/src/Examine.Lucene/ExamineTaxonomyReplicator.cs index 535e0e3c..fbf4b08c 100644 --- a/src/Examine.Lucene/ExamineTaxonomyReplicator.cs +++ b/src/Examine.Lucene/ExamineTaxonomyReplicator.cs @@ -95,7 +95,12 @@ public void ReplicateIndex() IndexAndTaxonomyRevision rev; try { - rev = new IndexAndTaxonomyRevision(_sourceIndex.IndexWriter.IndexWriter, _sourceIndex.TaxonomyWriter as SnapshotDirectoryTaxonomyWriter); + var factory = new SnapshotDirectoryTaxonomyIndexWriterFactory(); + var indexWriter = factory.OpenIndexWriter( + _destinationDirectory, + factory.CreateIndexWriterConfig(OpenMode.CREATE_OR_APPEND)); + + rev = new IndexAndTaxonomyRevision(indexWriter, factory); } catch (InvalidOperationException) { @@ -159,7 +164,13 @@ private void SourceIndex_IndexCommitted(object? sender, EventArgs? e) _logger.LogDebug("{IndexName} committed", index.Name); } } - var rev = new IndexAndTaxonomyRevision(_sourceIndex.IndexWriter.IndexWriter, _sourceIndex.TaxonomyWriter as SnapshotDirectoryTaxonomyWriter); + + var factory = new SnapshotDirectoryTaxonomyIndexWriterFactory(); + var indexWriter = factory.OpenIndexWriter( + _sourceIndex.GetLuceneDirectory(), + factory.CreateIndexWriterConfig(OpenMode.CREATE_OR_APPEND)); + + var rev = new IndexAndTaxonomyRevision(indexWriter, factory); _replicator.Publish(rev); } diff --git a/src/Examine.Lucene/Providers/LuceneIndex.cs b/src/Examine.Lucene/Providers/LuceneIndex.cs index 5a25b3c8..668cc402 100644 --- a/src/Examine.Lucene/Providers/LuceneIndex.cs +++ b/src/Examine.Lucene/Providers/LuceneIndex.cs @@ -21,6 +21,7 @@ using Lucene.Net.Facet.Taxonomy; using Lucene.Net.Facet.Taxonomy.Directory; using static Lucene.Net.Replicator.IndexAndTaxonomyRevision; +using Lucene.Net.Replicator; namespace Examine.Lucene.Providers { @@ -1285,9 +1286,9 @@ protected virtual DirectoryTaxonomyWriter CreateTaxonomyWriter(Directory? d) { throw new ArgumentNullException(nameof(d)); } - var taxonomyWriter = new SnapshotDirectoryTaxonomyWriter(d); - return taxonomyWriter; + var factory = new SnapshotDirectoryTaxonomyIndexWriterFactory(); + return new DirectoryTaxonomyWriter(factory, d); } /// diff --git a/src/Examine.Test/Examine.Test.csproj b/src/Examine.Test/Examine.Test.csproj index 9a5e64bc..1a78479b 100644 --- a/src/Examine.Test/Examine.Test.csproj +++ b/src/Examine.Test/Examine.Test.csproj @@ -55,7 +55,7 @@ - 4.8.0-beta00016 + 4.8.0-beta00017