Releases: apache/lucenenet
Releases · apache/lucenenet
v4.8.0-beta00007
This release contains impactful performance improvements and bug fixes.
NOTE: The
Lucene.Net.Support
namespace in the coreLucene.Net
assembly is being phased out for external use. Much of what used to be in this namespace has been made into first-class components and moved to J2N, a library to fill in gaps in functionality between the JDK and .NET. Please do not add any new dependencies onLucene.Net.Support
in the coreLucene.Net
library. Also, please open a new JIRA ticket if you have a dependency on a component fromLucene.Net.Support
that is not available in J2N.
This release drops support for .NET Standard 1.6 and adds support for .NET Standard 2.1.
Change Log
Breaking Changes
Lucene.Net.Codecs
(inLucene.Net
library) - Changed the following methods to properties with the same name for API consistencyLucene.Net.Codecs.DefaultCodecFactory::AvailableServices()
Lucene.Net.Codecs.DefaultDocValuesFormatFactory::AvailableServices()
Lucene.Net.Codecs.DefaultPostingsFormatFactory::AvailableServices()
Lucene.Net.Codecs.Codec::AvailableCodecs()
Lucene.Net.Codecs.DocValuesFormat::AvailableDocValuesFormats()
Lucene.Net.Codecs.PostingsFormat::AvailablePostingsFormats()
Lucene.Net.Analysis.Kuromoji
- Changed the following methods to properties namedInstance
for API consistencyLucene.Net.Analysis.Kuromoji.Dict.CharacterDefinition::GetInstance()
Lucene.Net.Analysis.Kuromoji.Dict.ConnectionCosts::GetInstance()
Lucene.Net.Analysis.Kuromoji.Dict.TokenInfoDictionary::GetInstance()
Lucene.Net.Analysis.Kuromoji.Dict.UnknownDictionary::GetInstance()
Lucene.Net.Support.Collections::AddAll()
- Factored out in favor ofISet<T>.UnionWith()
Lucene.Net.Support.IdentityComparer::ctor()
- Factored out in favor of newDefault
static propertyLucene.Net.Support.DictionaryExtensions::EntrySet()
- Factored out becauseIDictionary<TKey, TValue>
is already enumerable and copying its contents to another data structure for the purpose of enumeration is wasteful and unnecessaryLucene.Net.Support.SetExtensions::AddAll()
- Factored out in favor ofUnionWith()
,Lucene.Net.Support.DictionaryExtensions.PutAll()
, orAddRange()
depending on collection typeLucene.Net.Support.HashMap<TKey, TValue>
- Changed behavior of indexer property to throw aKeyNotFoundException
if the key doesn't exist. The exception can already be avoided by using theTryGetValue()
method.Lucene.Net.Support.Buffer
- Factored out in favor ofJ2N.IO.Buffer
Lucene.Net.Support.ByteBuffer
- Factored out in favor ofJ2N.IO.ByteBuffer
Lucene.Net.Support.LongBuffer
- Factored out in favor ofJ2N.IO.LongBuffer
Lucene.Net.Support.Number
- Factored out the following methods in favor of their counterparts in J2NSignum()
>J2N.MathExtensions::Signum()
SingleToInt32Bits()
>J2N.BitConversion::SingleToInt32Bits()
SingleToRawInt32Bits()
>J2N.BitConversion::SingleToRawInt32Bits()
Int64BitsToDouble()
>J2N.BitConversion::Int64BitsToDouble()
DoubleToInt64Bits()
>J2N.BitConversion::DoubleToInt64Bits()
DoubleToRawInt64Bits()
>J2N.BitConversion::DoubleToRawInt64Bits()
ToBinaryString()
>J2N.IntegralNumberExtensions::ToBinaryString()
URShift()
>J2N.Numerics.BitOperationExtensions::TripleShift()
ToString(long, radix)
>J2N.IntegralNumberExtensions::ToString(long, radix)
BitCount()
>J2N.Numerics.BitOperationExtensions::PopCount()
NumberOfLeadingZeros()
>J2N.IntegralNumberExtensions::LeadingZeroCount()
NumberOfTrailingZeros()
>J2N.IntegralNumberExtensions::TrailingZeroCount()
RotateLeft()
>J2N.IntegralNumberExtensions::RotateLeft()
RotateRight()
>J2N.IntegralNumberExtensions::RotateRight()
Lucene.Net.Support.Number
- Removed the following methodsFlipEndian()
IsNumber()
ToInt64()
Lucene.Net.Support.MathExtensions
- Factored out the following methods in favor of their counterparts in J2NToDegrees()
>J2N.MathExtensions::ToDegrees()
ToRadians()
>J2N.MathExtensions::ToRadians()
Lucene.Net.Support.AtomicBoolean
- Factored out in favor ofJ2N.Threading.Atomic.AtomicBoolean
Lucene.Net.Support.AtomicInt32
- Factored out in favor ofJ2N.Threading.Atomic.AtomicInt32
Lucene.Net.Support.AtomicInt64
- Factored out in favor ofJ2N.Threading.Atomic.AtomicInt64
Lucene.Net.Support.AtomicObject
- Factored out in favor ofJ2N.Threading.Atomic.AtomicReference
Lucene.Net.Support.AtomicReferenceArray
- Factored out in favor ofJ2N.Threading.Atomic.AtomicReferenceArray
Lucene.Net.Support.Threading.ThreadClass
- Factored out in favor ofJ2N.Threading.ThreadJob
Lucene.Net.Support.Character
- Factored out the following methods in favor of their counterparts in J2NDigit()
ForDigit()
Lucene.Net.Support.StringTokenizer
- Factored out in favor ofJ2N.Text.StringTokenizer
Lucene.Net.Support.CultureContext
- Factored out in favor ofJ2N.Globalization.CultureContext
Lucene.Net.Support.IndexWriterConfigExtensions
- Moved toLucene.Net.Index.Extensions
namespaceLucene.Net.Documents.IndexableFieldExtensions
- Moved toLucene.Net.Documents.Extensions
namespaceLucene.Net.Documents.DocumentExtensions
- Moved toLucene.Net.Documents.Extensions
namespaceLucene.Net.Support.IResourceManagerFactory
- Moved toLucene.Net.Util
namespaceLucene.Net.Support.BundleResourceMangerFactory
Moved toLucene.Net.Util
namespace
Bugs
- LUCENENET-615 - PerFieldAnalyzerWrapper and PerFieldReuseStrategy must support null keys.
- LUCENENET-617 - Reverted changes introduced in pull #222 that caused deadlock in
Lucene.Net.Tests.Replicator.IndexAndTaxonomyReplicationClientTest::TestConsistencyOnExceptions()
. Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharArrayMap_TestCharArrayMap()
- Was failing in Turkish, lowercasing must be done in the invariant culture to match LuceneLucene.Net.Tests.Util.Fst.TestFSTs::TestPrimaryKeys()
- Fixed sorting issue that was causing the test to fail with negative values- SWEEP: Corrected number-to-string and string-to-number conversions to use the invariant culture, as was the case in Lucene
- LUCENENET-622 -
Lucene.Net.Tests.Util.TestVersionComparer::TestVersions()
- Fixed version number conversion to use the invariant culture so the test consistently passes - LUCENENET-621 -
Lucene.Net.Tests.Search.TestSearchAfter::TestQueries()
- Fixed number-to-string conversion to use the invariant culture so the test consistently passes - `Lucene.Net.Tests.Benchmark.ByTask.Tasks.WriteLineDocTaskTest::TestMultiThreaded(): Added lock to synchronize write files. Also refactored test to assist future debugging efforts.
Lucene.Net.Analysis.Common
- Fixed to use invariant culture converting numbers and uppercasing/lowercasingLucene.Net.Benchmark
- Fixed to use invariant culture converting numbers and uppercasing/lowercasingLucene.Net.Facet
- Fixed to use invariant culture for number conversionLucene.Net.Misc
- Fixed to use invariant culture for number conversionLucene.Net.Suggest
- Fixed to use invariant culture for number conversionLucene.Net.Grouping
- Fixed to use invariant culture for number conversionLucene.Net.Spatial
- Fixed to use invariant culture for number conversionLucene.Net.Tests.Replicator
- Fixed issue with incorrect error message due to missingDispose()
callLucene.Net.Tests.Replicator.LocalReplicatorTest::TestObtainMissingFile()
- Added missing catch block forDirectoryNotFoundException
Lucene.Net.Support.Codecs
- Fixed initialization locking between parallel tasks. Also added guard clauses and inlined variable declarations.- #154 - Fix OpenBitSet.Union and .Xor methods.
- LUCENENET-618 - CRITICAL: Fixed
Lucene.Net.Store.NativeFSLockFactory
to be thread-safe on non-Windows operating systems - Fixed broken OS detection on .NET Framework
- LUCENENET-602 - Fixed generic stucts of LurchTable to function on Xamarin.iOS without throwing exceptions
Lucene.Net.TestFramework.Index.ThreadedIndexingAndSearchingTestCase
-WeakDictionary<TKey, TValue>
must be wrapped to make it thread safeLucene.Net.Codecs.Lucene45.Lucene45DocValuesConsumer::MISSING_ORD
- Correct value should be-1L
to match Lucene
Improvements
- azure-pipelines.yml: Added job to generate documentation
- Improved automated documentation converter accuracy
- Moved
Lucene.Net.Util.VirtualMethod
to its original location in theLucene.Net
assembly - Updated usage examples on home page of web site
- Changed categorization on API documentation to list by assembly rather than namespace
Lucene.Net.Analysis.Phonetic
- Create culture during static initialization to improve performanceLucene.Net.Index.CheckIndex
- Added guard clause to ensuredir
is not nullLucene.Net.Support.IO.FileSupport::CreateTempFile()
- Simplified error handling to use a when clause to only catch the relevant exceptions (improving thread safety)- SWEEP: CA1810 - Avoid static constructors (see [#224 (comment)](https://github.com/apache/luce...