Releases: Shazwazza/Examine
v3.7.1
- Improved logging output for better debugging issues with SyncedFileSystemDirectoryFactory
- Ensure directory/files are cleared if detecting a corrupt index
- Specifies explicit default values for TieredMergePolicy
- Use SimpleMergedSegmentWarmer when NRT is enabled
- Reduces the commit minimum wait time
Full Changelog:
v3.7.0
The recent change to the latest Lucene.NET seemed to 'just work' with Examine but there were some unnoticed nuances that needed to be fixed including handling disposals of the replicator when using the SyncedFileSystemDirectoryFactory. During the investigation, it was also noticed that the disposal ordering of some components wasn't done in an optimum order.
This should resolve the dreaded "invalid deletion count" index corruption issue.
- Fixes: invalid deletion count: 41 vs docCount=29 (resource: BufferedChecksumIndexInput(SimpleFSIndexInput(path="C:\home\site\wwwroot\umbraco\Data\TEMP\ExamineIndexes\ExternalIndex\segments_d5"))) #402
- Fixes: Lock obtain timed out" exceptions after updating Examine to 3.4.0 #404
- Fixes: Umbraco issue Lucene.Net.Index.CorruptIndexException: invalid deletion count: 2 vs docCount=1
This release has been tested in Prod and fixes have been confirmed by our good friend @readingdancer, thank you 🙌
Full Changelog: v3.6.0...v3.7.0
v3.6.0
Adds new options for LuceneQueryOptions
to work around limitations imposed by version 3.4.0 where the maximum data set size that can be paged is 10k when using Skip/Take.
If paging over data sets larger than 10k items is required and is not possible without using the more efficient SearchAfter feature, than these new options will allow Skip/Take to work but will have some performance implications.
- SkipTakeMaxResults - this will override the default value of 10k.
- AutoCalculateSkipTakeMaxResults - if set to true, than the total number of documents in the index will be calculated and used as the value for SkipTakeMaxResults. This means an additional index query is required for each query.
The reason the default 10K limit is imposed is because if this number is exceeded than additional memory and performance overheads will be incurred due to what Lucene allocates under the hood. Even Elastic Search has this limitation. For paging over large data sets, it is recommended to use the SearchAfter feature.
Examples have been added to the FluentApiTests.Paging_With_Skip_Take
test for a reference on how to use these new options.
Full Changelog: v3.5.0...v3.6.0
v3.5.0
- Updates dependencies, especially to latest Lucene.Net 4.8.0-beta00017
Full Changelog: v3.4.0...v3.5.0
v3.4.0
- BREAKING - the default max results are now 100 instead of 500. This is a performance update since the larger max docs returned for any given query will allocate a buffer for that many items, even if there isn't that many documents to return. It is strongly advised to use the
QueryOptions
to specify page size. - BREAKING - the absolute max paged dataset is now limited to 10000 instead of pre-calculating how many documents exist in the index for each search since performance degrades when paging over large data sets like this. Instead, it is recommended to use the SearchAfter feature.
- PERFORMANCE - a performance update which includes the above along with less allocations and lookups being used when searching.
- PERFORMANCE - when NRT is enabled (default), the NRTCachingDirectory is now used.
- FEATURE - exposes NRT settings in LuceneIndexOptions and ensures that SearcherManager is used correctly when NRT is not enabled.
- BUGFIX - when rebuilding an index, ensures that commit and merges are handled so that old files are removed.
- BUGFIX - when SyncedFileSystemDirectoryFactory detects a corrupt index, ensures that commit and merges are handled so that old files are removed.
Full Changelog: v3.3.0...v3.4.0
v3.3.0
What's Changed
Release notes: https://shazwazza.com/post/an-examine-fix-for-umbraco-index-corruption/
- Fixes umbraco/Umbraco-CMS#16163
- Fixes Lucene.Net.Index.CorruptIndexException: invalid deletion count: 2 vs docCount=1 #382
v3.2.1
- Bump nokogiri from 1.15.4 to 1.16.3 in /docs by @dependabot in #380
- Bumps to LTS versions of .NET and updates dependencies.
- Uses FSDirectory.Open for all directory usages including.
- Resolves: Abstaction of LuceneIndex.cs #351
Full Changelog: v3.2.0...v3.2.1
v3.2.0
What's Changed
- Migrate docs site to docfx by @nzdev in #322
- Support for efficient deep paging in lucene.net by @nzdev in #320
- test: Add .NET 7 target to tests by @nikcio in #318
- Added docs on Indexing events by @nikcio in #300
- CI - Add your build.yml change to the release branch 3.0 by @nikcio in #343
- Record v3 shipped API using Microsoft.CodeAnalysis.PublicApiAnalyzers by @nzdev in #346
- Bump nokogiri from 1.13.9 to 1.15.4 in /docs by @dependabot in #348
- fix typo error in searching.md by @vivekBoii in #353
- fixed typo error in searching.md by @vivekBoii in #354
- fix typo error in searching.md by @vivekBoii in #355
- Fix docs for synchronous index building by @jakoss in #371
New Contributors
- @vivekBoii made their first contribution in #353
- @jakoss made their first contribution in #371
Full Changelog: v3.1.0...v3.2.0
v4.0.0-beta.1
What's Changed
- Implementation of Facets (#310) by @nikcio in #311
- Facets XML (#311) by @nikcio in #312
- Delete ReaderStatus by @nikcio in #336
- Facets nullable (#311 & #307) by @nikcio in #313
- Added docs on Indexing events by @nikcio in #300
- Taxonomy Index for Facets by @nzdev in #323
- Support for deep paging for Facets by @nzdev in #321
- Update packages by @nzdev in #332
- Fix V4 compatibility with V3 API by @nzdev in #347
- Record v3 shipped API using Microsoft.CodeAnalysis.PublicApiAnalyzers by @nzdev in #346
- Allow mix of single objects and enumerables in valueset by @andrewmckaskill in #340
- Ensure V4 API, reduce warnings by @nzdev in #349
- Update docs about facets by @bjarnef in #350
- fix typo error in searching.md by @vivekBoii in #353
New Contributors
- @andrewmckaskill made their first contribution in #340
Full Changelog: v3.1.0...v4.0.0-beta.1
v3.2.0-beta.9
What's Changed
- Support for efficient deep paging in lucene.net by @nzdev in #320
- Migrate docs site to docfx by @nzdev in #322
- test: Add .NET 7 target to tests by @nikcio in #318
- Added docs on Indexing events by @nikcio in #300
- CI - Add your build.yml change to the release branch 3.0 by @nikcio in #343
- Record v3 shipped API using Microsoft.CodeAnalysis.PublicApiAnalyzers by @nzdev in #346
- Bump nokogiri from 1.13.9 to 1.15.4 in /docs by @dependabot in #348
- fix typo error in searching.md by @vivekBoii in #353
Full Changelog: v3.1.0...v3.2.0-beta.9