commit | 0eaf76540b8de326d1aa9ca24f4b5d6425a9ae38 | [log] [tgz] |
---|---|---|
author | Shad Storhaug <shad@shadstorhaug.com> | Thu Jan 23 21:00:56 2020 +0700 |
committer | Shad Storhaug <shad@shadstorhaug.com> | Thu Jan 23 21:10:36 2020 +0700 |
tree | 31ab8eccc4f31ffb554e035b0dde5b5aad37a08e | |
parent | 7fd3de71d60a50059b6a8276bccb8d35fd6a1c83 [diff] |
Upgraded (most) collections to utilize more suitable replacements from J2N (LUCENENET-616) Squashed commit of the following: commit 0090923917ce9a3e1a0a557030de511c01bd15e0 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Thu Jan 23 20:24:26 2020 +0700 Lucene.Net.Tests.Support.TestApiConsistency: Updated ignore list commit d8400740e9d3914a1044d2a4db775d7f80d619e7 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Thu Jan 23 13:16:04 2020 +0700 Fixed some broken XML documentation links commit 1c5fc49856bcaaca0b60d34177564ac5e070aa6f Author: Shad Storhaug <shad@shadstorhaug.com> Date: Thu Jan 23 12:43:16 2020 +0700 Upgraded J2N to 2.0.0-beta-0001, ICU4N to 60.1.0-alpha.197, and Morfologik.Stemming to 2.1.6-beta-0002 commit 15ce25ecf8a4d1f3605233ea06a6d3c16a9cbd77 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Thu Jan 23 12:43:32 2020 +0700 Deleted NuGet.config commit a47b2b5daae0c4de10ce9c118556801986ac309f Author: Shad Storhaug <shad@shadstorhaug.com> Date: Thu Jan 23 09:12:43 2020 +0700 Lucene.Net.Index.IndexReader: Replaced ConcurrentSet with ConcurrentHashSet on parentReaders commit b720cf9ef567167243606b7f421bf174d7694d92 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Thu Jan 23 08:39:41 2020 +0700 Lucene.Net.Search.ReferenceManager: Replaced ConcurrentSet with ConcurrentHashSet on refreshListeners commit 16b9e6e007268b181aa17d4a9585456091f6c31f Author: Shad Storhaug <shad@shadstorhaug.com> Date: Thu Jan 23 08:27:12 2020 +0700 Lucene.Net.Util.VirtualMethod: Replaced ConcurrentSet with ConcurrentHashSet on singletonSet commit d4492ea98c6021f976759f2414a55be92045f071 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Thu Jan 23 08:24:01 2020 +0700 Lucene.Net.TestFramework.Index.ThreadedIndexingAndSearchingTestCase: Changed ConcurrrentSet to ConcurrentHashSet. Also fixed a bug with the ConcurrentQueue not actually being populated because it was not being passed through to the thread that was populating it. commit 8a9c6a6973cdcadc168226446707b08e60f2fbf1 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Thu Jan 23 08:04:14 2020 +0700 Lucene.Net.TestFramework.Store.MockDirectoryWrappper: Changed openLocks to use ConcurrentHashSet instead of ConcurrentSet commit 88f5052e2a6fb17dc864052c5791b2f5956be80f Author: Shad Storhaug <shad@shadstorhaug.com> Date: Thu Jan 23 07:47:45 2020 +0700 Lucene.Net.Support.ConcurrentHashSet: Implemented ISet<T> (partially) commit 5d351d7192e608084ed59b685927e63c14da121c Author: Shad Storhaug <shad@shadstorhaug.com> Date: Thu Jan 23 07:30:06 2020 +0700 Lucene.Net.Support: Added ConcurrentHashSet commit 6197416735bca9552bbb956adf0d3b8fcb434455 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Thu Jan 23 06:36:18 2020 +0700 Lucene.Net.Support.Collections: Removed unused (and only partially implemented) NewSetFromMap method and related SetFromMap class commit 5e65d5e262403d9a0a77da692770471d7f61c558 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Thu Jan 23 06:34:17 2020 +0700 Lucene.Net.Support.Collections: Factored out Singleton() method and used collection initializers instead commit aef40f1e50145ec5973cfbe0474dbbf99f486089 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Thu Jan 23 06:08:56 2020 +0700 Lucene.Net.Support.Collections: Factored out ImplementsGenericInterface() in favor of J2N's implementation commit 6c13b7a87fcfd5091636ee8e6e2f809ba513551f Author: Shad Storhaug <shad@shadstorhaug.com> Date: Thu Jan 23 05:54:54 2020 +0700 Upgraded Morfologik.Stemming to 2.1.6-beta-0004-gf258be02f5 commit 59d56680fe1f6655bbf85cd395c49796a7a8b866 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Thu Jan 23 05:54:13 2020 +0700 NuGet.config: Added Morfologik.Stemming preview feed commit 48b0431e7bd231215eca360af8f6af6a0dabd782 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Thu Jan 23 04:08:58 2020 +0700 SWEEP: Upgraded to account for breaking changes (AsCharSequence() and BitOperation) in J2N. commit 32d89bbd31432572463b5eb4b509711825e3f45b Author: Shad Storhaug <shad@shadstorhaug.com> Date: Thu Jan 23 04:01:07 2020 +0700 Upgraded J2N to 1.0.0-ci-0032-g1028fef3c2 and ICU4N to 60.1.0-alpha.203+513cf990e6 commit 1c28e683f787d21191bc08e37f3535d4ebeb7489 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Thu Jan 23 03:43:21 2020 +0700 Lucene.Net.Support: Renamed ExceptionToNullableEnumConvention > ExceptionToNullableEnumConventionAttribute commit 8ecaf7642a07fa7f9bce10e00830e2a93da533e4 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Wed Jan 22 13:30:53 2020 +0700 BREAKING: Changed semantics of CharTermAttribute's Append() overloads to act more like the .NET StringBuilder class. 1) The 3rd parameter was changed from an exclusive end index to a count. 2) A null parameter on a single parameter overload will be a no-op instead of appending the text "null". 3. A null parameter on a 3 parameter overload will be a no-op if both startIndex and count are 0, otherwise it will throw an ArgumentNullException. commit 250ccb3fae32c4fee4891db37d13bf710cd1b89b Author: Shad Storhaug <shad@shadstorhaug.com> Date: Wed Jan 22 10:01:40 2020 +0700 SWEEP: Fixed using statements and whitespace in ~100 files commit b733c4d158e5e1de62c6b12797c589ac70b4c1c7 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Wed Jan 22 00:09:19 2020 +0700 BREAKING: Factored out Character, ICharSequence, StringBuilderCharSequenceWrapper, StringBuilderExtensions, StringCharSequenceWrapper, and most StringExtensions methods in favor of J2N's implementation commit 236ebeaeb2b187c15b83fbf9707df883927be799 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Tue Jan 21 17:39:38 2020 +0700 Lucene.Net.Search.FieldComparer: Replaced CompareTo() calls with JCG.Comparer<T>.Default.Compare(), factoring out Lucene.Net.Support.SignedZeroComparer in the process. commit 0dd5d40c2584b5a124d27e892a994ead20495a58 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Tue Jan 21 04:41:51 2020 +0700 Lucene.Net.Support: Factored out GeneralKeyedCollection and AttributeItem in favor of J2N.Collections.Generic.LinkedDictionary commit 9d65cc71f7fef8b4712b0181d92dd3ecea0f7ebf Author: Shad Storhaug <shad@shadstorhaug.com> Date: Tue Jan 21 04:01:57 2020 +0700 Lucene.Net.Support: Refactored ConcurrentHashSet into ConcurrentSet - a wrapper class that can be used to synchronize any set object (ordered or not), similar to how it was done in Java. Changed ordered concurrent set types back to the original type from Lucene. commit 20ce72dd26d6d60a5c507c44242812a7dcf4b1b4 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Mon Jan 20 15:15:21 2020 +0700 Lucene.Net.TestFramework.Search.AssertingScorer: Changed to use ConditionalWeakTable/WeakDictionary commit 7a68b17a4d154b0d42130c0c12ba42d2b7fbd53b Author: Shad Storhaug <shad@shadstorhaug.com> Date: Mon Jan 20 05:40:17 2020 +0700 Lucene.Net.Support.PriorityQueue: Factored out in favor of J2N's implementation commit 78f96bee8a3c2bf207f4445df85ed3111af9b797 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Mon Jan 20 05:15:21 2020 +0700 Lucene.Net.Support: Factored out TreeSet and TreeDictionary and deleted all related files commit 9c39edfb1b60538e1797d49d6e8f24d52e77409e Author: Shad Storhaug <shad@shadstorhaug.com> Date: Mon Jan 20 04:28:15 2020 +0700 Lucene.Net.Grouping.AbstractGroupingFacetCollector + Lucene.Net.Highlighter.PostingsHighlight.PostingsHighlighter + Lucene.Net.TestFramework.Analysis.MockCharFilter: Factored out TreeSet and TreeDictionary from Lucene.Net.Support in favor of J2N.Collections.Generic.SortedSet and J2N.Collections.Generic.SortedDictionary commit 902c5a0953e4a10eb7f4e96138b09372387f9575 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Mon Jan 20 03:26:44 2020 +0700 Upgraded to J2N 1.0.0-ci-0028-gdf6487f0d2 and ICU4N 60.1.0-alpha.200.g70c0d4d663 commit 107960688cee080b4efaa3eb4d1b96f664f62582 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Sat Jan 18 03:52:28 2020 +0700 Lucene.Net.TestFramework.Support.JavaCompatibility.LuceneTestCase: Replaced SetEquals(expected, actual) call with J2N.Collections.Generic.SetEqualityComparer<T>.Aggressive.Equals(expected, actual) commit 3b2ab0bb7248d35cbd8aac65033ef4368a1b8887 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Sat Jan 18 01:36:26 2020 +0700 Lucene.Net.Support: Factored out IdentityComparer, IdentityHashMap, and IdentityHashSet and used J2N.Runtime.CompilerServices.IdentityEqualityComparer in conjunction with standard Dictionary and HashSet types commit 5709d717ecbf58a557892c7e6fe164766eaff42b Author: Shad Storhaug <shad@shadstorhaug.com> Date: Fri Jan 17 23:07:03 2020 +0700 Updated J2N to 60.1.0-alpha.198.g994ea3e2aa and ICU4N to 60.1.0-alpha.199.ga45db812af commit d9e7c033ec0748dbb716c9f6f065061c5d1370e8 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Fri Jan 17 06:29:33 2020 +0700 Lucene.Net.Support.Collections: Factored out Swap and Shuffle in favor of J2N's implementation commit a8d8f477d97d35eba99e40c5d64502ee8db1ebe4 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Fri Jan 17 06:07:48 2020 +0700 Lucene.Net.Collections: Factored out unmodifiable methods and related classes in favor of J2N's AsReadOnly() extension methods commit aed4d994fff776c1111abda33ee8fe6b6802edfd Author: Shad Storhaug <shad@shadstorhaug.com> Date: Fri Jan 17 05:48:19 2020 +0700 Lucene.Net.Support: Removed Equatable, EquatableList, EquatableSet, and ToString/GetHashCode methods from Collections commit 5582ddbe20a05dc67f0f6ecf1bd330eca753bd44 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Thu Jan 16 19:44:16 2020 +0700 Lucene.Net.Util.Fst: Use J2N.Collections.List<T> for the closing type of Outputs<T> to ensure the outputs can be compared for structural equality commit eb790619636ff208f8d21efac845fa4539a06d01 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Thu Jan 16 18:36:39 2020 +0700 Lucene.Net.Util.Fst.ListOfOutputs::Merge(): Streamlined so we don't have so many casts commit 74d9fc227940baec451bc3b02b3d06621100105c Author: Shad Storhaug <shad@shadstorhaug.com> Date: Thu Jan 16 11:55:08 2020 +0700 Updated J2N and ICU4N to latest preview versions commit 89bc2118b2dc1c3c79a344c099fb78b2daac946c Author: Shad Storhaug <shad@shadstorhaug.com> Date: Sun Jan 12 10:27:56 2020 +0700 Removed FEATURE_HASHSET_CAPACITY, since J2N now has the full .NET Core 3.x implementation with a capacity constructor commit 958cdf3c82f862664407ccef02ca2ca8fd10bf2a Author: Shad Storhaug <shad@shadstorhaug.com> Date: Sun Jan 12 10:14:27 2020 +0700 SWEEP: Removed dependencies on Collections.Equals() and Collections.GetHashCode() commit 841d0d4f0e6e5ec62d8c8c4b53a7135c668def2a Author: Shad Storhaug <shad@shadstorhaug.com> Date: Sun Jan 12 09:42:17 2020 +0700 SWEEP: Lucene.Net.Support: Removed dependencies on Equatable, EquatableList, and EquatableSet, and replaced with collections from J2N commit 6e3c3c533f299995deacc1dce7362fc20ca7a03f Author: Shad Storhaug <shad@shadstorhaug.com> Date: Sun Jan 12 09:03:32 2020 +0700 Upgraded to J2N 1.0.0-ci-0012-ga65c37c253 commit d80e9dda73de4f9c6b1a01902f211bf17dcf1536 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Sat Jan 11 02:33:28 2020 +0700 SWEEP: Swapped in structural equality comparers from J2N in place of Collections.ToString() and Collections.GetHashCode() from Lucene.Net.Support commit 1af3d46b5791cbfc0246baad54cdd2112d084fc4 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Sat Jan 11 02:28:31 2020 +0700 Added naming exclusion for _Scratch class (which only exists to make a J2N namespace real for now) commit de3e0a10d7ef7274e33f3fb69303b8bef67b29d7 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Fri Jan 10 22:38:07 2020 +0700 SWEEP: Factored out Arrays.AsList, which was causing both additional operational complexity and unnecessary memory allocations commit e1ead061df6ab5371979040ae8071b1bf8b18070 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Fri Jan 10 18:37:03 2020 +0700 Lucene.Net.Util.Automaton.State: Implemented IEquatable<State>, changed enumerator to a struct commit 6c16c48bf000f2f075aa680f89b4e15fdace70e6 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Fri Jan 10 18:22:53 2020 +0700 Lucene.Net.Support.ConcurrentHashSet: Implemented IStructuralEquatable and IFormattable commit ea81d7952f1b90030f7c78948a5c82e5b073bf46 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Fri Jan 10 18:16:46 2020 +0700 SWEEP: Swapped out System.Collections.Generic.HashSet for J2N.Collections.Generic.HashSet commit 5d455451aef3c0144997b19fe952db92da81eb61 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Fri Jan 10 13:33:03 2020 +0700 Formatting and documentation updates commit f3b4160f7d823fdf1cbf7810317197070b6678aa Author: Shad Storhaug <shad@shadstorhaug.com> Date: Fri Jan 10 07:00:57 2020 +0700 SWEEP: Factored out C5's TreeSet, where possible. commit e8103d1c5eeab5ebeca80404e0887796d392a44c Author: Shad Storhaug <shad@shadstorhaug.com> Date: Fri Jan 10 06:40:59 2020 +0700 SWEEP: Changed System.Collections.Generic.SortedSet to J2N.Collections.Generic.SortedSet commit a5325d0d9421e479bfda426cc3a519ce25df3e54 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Fri Jan 10 06:15:50 2020 +0700 Lucene.Net.Analysis.Kuromoji.Dict.UserDictionary: Swapped out C5 TreeDictionary for J2N.Collections.Generic.SortedDictionary commit 309d4ebd2ae109e45792090e61a00833e5b4ee4f Author: Shad Storhaug <shad@shadstorhaug.com> Date: Fri Jan 10 06:06:40 2020 +0700 SWEEP: Factored out System.Collections.Generic.SortedDictionary in favor of J2N.Collections.Generic.SortedDictionary commit fd03a03a6b878f04007ce398616ef045cf899f8a Author: Shad Storhaug <shad@shadstorhaug.com> Date: Fri Jan 10 05:30:08 2020 +0700 SWEEP: Factored out Lucene.Net.Support.HashMap in favor of J2N.Collections.Generic.Dictionary commit c06f34e6001e83d057bc7f3f25e5bc4bf04d9c0a Author: Shad Storhaug <shad@shadstorhaug.com> Date: Fri Jan 10 04:31:58 2020 +0700 Lucene.Net.Highlighter, Lucene.Net.Tests.Spatial: Swapped in LinkedHashSet from J2N, like in the original Lucene implementation commit d6a10e95c42a1c542920caabd609fde71a417ad8 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Fri Jan 10 04:30:15 2020 +0700 Lucene.Net.Tests.Search.TestFieldCache::Test(): Simplified expression with LINQ query commit 8c11b73f6b61eb45e7e5ece1d016af87b9b97c8d Author: Shad Storhaug <shad@shadstorhaug.com> Date: Fri Jan 10 03:49:42 2020 +0700 SWEEP: Factored out LinkedHashMap in favor of J2N's LinkedDictionary commit 659f94f0b8b16c961a3ff18e4d1bd53f7aa65865 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Fri Jan 10 03:47:25 2020 +0700 Upgraded J2N to 1.0.0-ci-0001-g4f977e960e commit fd2c3249ee66a2fadd62f243dfbb9c59751f08c5 Author: Shad Storhaug <shad@shadstorhaug.com> Date: Fri Jan 10 03:46:47 2020 +0700 Added NuGet.config to import J2N preview feed on MyGet
Apache Lucene.Net is a .NET full-text search engine framework, a C# port of the popular Apache Lucene project. Apache Lucene.Net is not a complete application, but rather a code library and API that can easily be used to add search capabilities to applications.
The Apache Lucene.Net web site is at: http://lucenenet.apache.org
Latest Stable Version: Lucene.Net 3.0.3
Working toward Lucene.Net 4.8.0 (currently in BETA)
PM> Install-Package Lucene.Net
PM> Install-Package Lucene.Net -Pre
We now have some preliminary documentation for Lucene.Net 4.8.0 on the Lucene.Net Website.
The API is similar to Java Lucene 4.8.0, which you may also find helpful to review.
NOTE: We are working on fixing issues with the documentation, but could use more help since it is a massive project. See #206.
There are several demos implemented as simple console applications that can be copied and pasted into Visual Studio or compiled on the command line in the Lucene.Net.Demo project.
There is also a dotnet command line tool available on NuGet. It contains all of the demos as well as tools maintaining your Lucene.Net index, featuring operations such as splitting, merging, listing segment info, fixing, deleting segments, upgrading, etc. Always be sure to back up your index before running any commands against it!
dotnet tool install lucene-cli -g --version 4.8.0-beta00007
Once installed, you can explore the commands and options that are available by entering the command lucene
.
Lucene.Net is a very large project (over 400,000 executable lines of code and nearly 1,000,000 lines of text total) and we welcome any and all help to maintain such an effort. Read our Contribution Guide or read on for ways that you can help.
If you have a general how-to question or need help from the Lucene.Net community, please email the Apache Lucene.Net-User mailing list by sending a message to:
We recommend you join the user mailing list to stay looped into all user discussions.
Alternatively, you can get help via StackOverflow.
Please do not submit general how-to questions to JIRA, use JIRA for bug reports/tasks only.
To report a bug, please use the JIRA issue tracker. You can signup for a JIRA account here (it just takes a minute).
To start a development discussion regarding technical features of Lucene.Net, please email the Apache Lucene.Net-Developer mailing list by sending a message to:
We recommend you join both the user and dev mailing lists to stay looped in to all user and developer discussions.
Before you start working on a pull request, please read our Contributing guide.
If you plan to submit multiple pull requests, please submit an Individual Contributor License, or for individual pull requests, just submit the request and in the description state that the code is your original work and you license it under the Apache License v2.
Building on the Command Line is currently only supported on Windows.
To build the source, clone or download and unzip the repository. From the repository root, execute:
> build [options]
NuGet packages are output by the build to the /release/NuGetPackages/
directory. Test results (if applicable) are output to the /release/TestResults/
directory.
You can setup Visual Studio to read the NuGet packages like any NuGet feed by following these steps:
+
icon (for add)Lucene.Net Local Packages
...
button next to the Source field, and choose the /src/release/NuGetPackages
folder on your local system.Then all you need to do is choose the Lucene.Net Local Packages
feed from the dropdown (in the NuGet Package Manager) and you can search for, install, and update the NuGet packages just as you can with any Internet-based feed.
Lucene.Net.sln
in Visual Studio.build/TestTargetFramework.proj
and uncommenting the corresponding <TargetFramework>
.NOTE: When running tests in Visual Studio, be sure to set the default processor architecture to 64 bit to avoid running out of virtual memory on some tests.