The Apache Lucene.NET team is pleased to announce the release of version 
4.8.0-beta00016 of Lucene.NET. Apache Lucene.NET is a .NET full-text search  
framework, a C# port of the popular Apache Lucene project. Lucene.NET is a code 
library and API that can easily be used to add search capabilities to 
applications.

This is the biggest update we have had since 4.8.0-beta00008. The release 
includes some key bug fixes and we have closed some issues that have been on 
our radar for quite some time.

- Lucene.Net.TestFramework has extended NUnit to be able to repeat a random set 
of test conditions based on a seed. This benefits users in 2 ways.
   1. We were able to track down nearly all of the rare random test failures 
that were occurring in prior beta versions, which affect many different parts 
of Lucene.NET.
   2. Users of Lucene.Net.TestFramework gain the ability to run a set of random 
test conditions locally that failed on another machine. If using J2N.Randomizer 
to generate random numbers, the seed is guaranteed to be portable across 
operating systems.
- Most of our dependencies are now stable, including J2N, 
RandomizedTesting.Generators, and Morfologik.Stemming. Spatial4n has also been 
consolidated into a single NuGet package named Spatial4n (previously there were 
Spatial4n.Core and Spatial4n.Core.NTS) and namespaces have been updated to 
match.
- All Lucene.NET, J2N, ICU4N, Spatial4n, RandomizedTesting.Generators, and 
Morfologik.Stemming NuGet packages now support Source Link so developers can 
step into the code files from our repositories. See: 
https://s.apache.org/lucenenet-source-link for details on how to set it up.
- .NET Framework and .NET Standard 2.0 users benefit from replacing 
WeakDictionary<TKey, TValue> (which was carried over from Lucene.NET 3.0.3) 
with ConditionalWeakTable<TKey, TValue>. Since the ConditionalWeakTable<TKey, 
TValue> enumerator API is missing on these versions of .NET, we have worked 
around it by attaching weak events to the keys of the table so they can be 
identified and looked up if they are still alive. WeakDictionary<TKey, TValue> 
allocated memory nearly every time it was read, so this is a big win for .NET 
Framework and .NET Standard 2.0 users, although there are still performance 
benefits to using .NET Standard 2.1+, if possible.
- .NET Framework on x86 had many floating-point precision issues that have now 
been fully addressed.
- Numeric field types have been updated to use types from J2N.Numerics, which 
are numeric reference types. This allows them to be stored in a collection of 
type object without having to unbox the value in certain cases, such as when 
using Lucene.Net.Search.FieldDoc.Fields. These numeric types use implicit 
conversion so they can be assigned to a similar value type (for example 
J2N.Numerics.Int32 can be assigned directly to a variable of type System.Int32).
- Lucene.Net.Documents.DateTools has been enhanced to support .NET ticks, .NET 
ticks as milliseconds, or unix time in milliseconds (the default). This is a 
breaking change, but allows more flexibility in date conversions. 
DateTools.DateToString() also now supports setting a specific time zone for the 
provided value, which is converted from the specific time zone to UTC for the 
output (which can then be indexed).
- Several TermsEnum.MoveNext() overloads were fixed to return false in some 
cases which were incorrectly returning true.
- Lucene.Net.Replicator has updated the default timeout to be 100 seconds 
instead of 1 second, which was failing unexpectedly in certain scenarios. It 
also had some deadlock issues that have been addressed.

Please note that there are some breaking index changes that may affect a small 
number of users. See the release notes for details.


The Lucene.NET 4.8.0-beta00016 binary and source distributions are available 
for download from our download page:
https://lucenenet.apache.org/download/download.html

The Lucene.NET library is distributed by NuGet.org as well. See the README.md 
page for more details:
https://github.com/apache/lucenenet#all-packages-1

Complete list of changes in this version:
https://s.apache.org/lucenenet-4.8.0-beta00016-notes

The Apache Lucene.NET Team

Reply via email to