Releases: apache/lucenenet
Releases · apache/lucenenet
v4.8.0-beta00007
This release contains impactful performance improvements and bug fixes.
NOTE: The
Lucene.Net.Supportnamespace in the coreLucene.Netassembly 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.Supportin the coreLucene.Netlibrary. Also, please open a new JIRA ticket if you have a dependency on a component fromLucene.Net.Supportthat 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.Netlibrary) - 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 namedInstancefor 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 newDefaultstatic 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 aKeyNotFoundExceptionif 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.BufferLucene.Net.Support.ByteBuffer- Factored out in favor ofJ2N.IO.ByteBufferLucene.Net.Support.LongBuffer- Factored out in favor ofJ2N.IO.LongBufferLucene.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.AtomicBooleanLucene.Net.Support.AtomicInt32- Factored out in favor ofJ2N.Threading.Atomic.AtomicInt32Lucene.Net.Support.AtomicInt64- Factored out in favor ofJ2N.Threading.Atomic.AtomicInt64Lucene.Net.Support.AtomicObject- Factored out in favor ofJ2N.Threading.Atomic.AtomicReferenceLucene.Net.Support.AtomicReferenceArray- Factored out in favor ofJ2N.Threading.Atomic.AtomicReferenceArrayLucene.Net.Support.Threading.ThreadClass- Factored out in favor ofJ2N.Threading.ThreadJobLucene.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.StringTokenizerLucene.Net.Support.CultureContext- Factored out in favor ofJ2N.Globalization.CultureContextLucene.Net.Support.IndexWriterConfigExtensions- Moved toLucene.Net.Index.ExtensionsnamespaceLucene.Net.Documents.IndexableFieldExtensions- Moved toLucene.Net.Documents.ExtensionsnamespaceLucene.Net.Documents.DocumentExtensions- Moved toLucene.Net.Documents.ExtensionsnamespaceLucene.Net.Support.IResourceManagerFactory- Moved toLucene.Net.UtilnamespaceLucene.Net.Support.BundleResourceMangerFactoryMoved toLucene.Net.Utilnamespace
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 forDirectoryNotFoundExceptionLucene.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.NativeFSLockFactoryto 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-1Lto match Lucene
Improvements
- azure-pipelines.yml: Added job to generate documentation
- Improved automated documentation converter accuracy
- Moved
Lucene.Net.Util.VirtualMethodto its original location in theLucene.Netassembly - 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 ensurediris 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...