Comments (8)
Sorry, I mean the Java Lucene version. I am seeing that the latest Java Lucene is 8.6.0. Does Lucene.Net 4.8.0 match Lucene 4.8.0?
The core Lucene.Net project is based on 4.8.0. Most of the submodules including Lucene.Net.Analysis.Common
are based on 4.8.1. Some of the other analysis modules were ported from 7.2.0 and 8.2.0 (which were the latest at the time we ported them).
I am asking because I cannot believe it falls behind so much.
That is the battle we are fighting. People get the impression that we are far behind because of the number of years it has taken and the fact there are 4 major versions between Lucene.NET and Lucene.
Last I checked (I believe it was 8.3.0), there were exactly 7 new modules and about 12 new features of any consequence added since 4.8.0. That's it. Look at the source code if you don't believe it. There was a discussion back in 2018 that I wasn't part of where some people said they are withholding their support because we are not targeting the latest version. I am curious to know whether they realize:
- Lucene.NET 4.8.0 is almost stable and has been since that conversation happened in 2018
- We have been working on Lucene.NET's dependencies since then (that both 4.8.0 and 8.x require)
- It would take around 1800 hours to upgrade from 4.8.0 to 8.x, not including the 1100-1200 hours we have yet to complete now
- Changing gears now will rob the .NET community of a stable Lucene.NET 4.8.0 in 2021, and take at least an extra year to stabilize and roll out
- We are planning to upgrade to 8.x after the release of Lucene.NET 4.8.0 is stable and we have secured enough funding to get started
- 8.x has only about 12 new features that 4.8.0 doesn't have that are of any consequence
I am also curious to know which of the 12 or so new features that people think are so important that they are withholding their support, and how they could ever think it would be worth it for us to derail the whole project for at least a year to try to reach that goal. Not to mention robbing the entire .NET community of a stable 4.8.0 while they wait for that work to be completed.
Our sponsors at Microsoft don't agree with those people. They don't even agree with us that it is worth it to upgrade to 8.x after the release of 4.8.0. Sure there are bug fixes and performance benefits in the new version, but the total benefit for the cost just isn't there.
Unfortunately the gap between the reality of the situation and the impression that people get about how far we are behind is a big one, and that situation isn't going to change until we either reach a stable 4.8.0 or the community provides enough funding for the extra 1800 hours of labor involved in re-targeting to 8.x.
from lucenenet.
Anyone knows which Java version the latest Lucene.Net maps to?
And why Lucene.Net has no stable version released for such a long time?
from lucenenet.
Anyone knows which Java version the latest Lucene.Net maps to?
Lucene 4.8.0 supports Java 4, 5, and 6.
And why Lucene.Net has no stable version released for such a long time?
Quite simply, because there haven't been enough people contributing, and we only recently got any sponsorship. There has been 5000+ hours contributed since 2014 on Lucene.NET 4.8.0, of which I have personally contributed about 4000 hours. Lucene.NET was pretty much ported in 2017, but we are now trying to finish up all of the dependencies that didn't exist in .NET (namely ICU4N and J2N), testing on different platforms and operating systems, and implement enough of the features of the test framework that we can be reasonably sure that we aren't getting false positives. There is also some research to do to work out how to implement some of the features properly on the .NET platform, quite a bit of cleanup work of the APIs, and more performance tuning to do. Not to mention chasing down bug reports and answering user inquiries that we could use help with.
There are around 1100-1200 hours of work left to complete Lucene.NET 4.8.0 to production with its dependencies. Microsoft has recently sponsored 200 hours, and is considering more funding. We are also getting some funding from iTextSharp. But, for a project of this size and complexity we are going to need more contributions, more funding, or both to see this through to the point it is enterprise-ready.
For anyone interested in sponsoring the project, either do so through our personal GitHub sponsors accounts or contact me via the email address on my profile and I will provide details on how to sponsor the project as a whole. Or, if you would like to make a contribution, do note that anything marked up-for-grabs
is free for anyone to start working on - simply leave a message on the issue and we will assign it to you.
from lucenenet.
Thanks so much for your response. @NightOwl888
Anyone knows which Java version the latest Lucene.Net maps to?
Lucene 4.8.0 supports Java 4, 5, and 6.
Sorry, I mean the Java Lucene version. I am seeing that the latest Java Lucene is 8.6.0. Does Lucene.Net 4.8.0 match Lucene 4.8.0? I am asking because I cannot believe it falls behind so much.
And why Lucene.Net has no stable version released for such a long time?
Quite simply, because there haven't been enough people contributing, and we only recently got any sponsorship.
I didn't know that there are so few people contributing for such a complicated project. Thank you so much for your effort on this! I hope you can find more contributors. This is really a wonderful project for .net developers. Hoping that it is going well.
from lucenenet.
@NightOwl888 Thank you for this response and succinct comparison of 4.8 vs 8.3 as well as highlighting the gap between perception and reality with regard to the differences between those to versions. This is enlightening to me and explains a lot. The strategy of getting 4.8 released before working towards the latest version makes perfect sense. I truly wish I had some bandwidth to help contribute. In the future I hope to get myself to a position where I can. In my mind, there is no more worthy open source project in the .Net ecosystem then Lucene.Net to warrant developer contributions. This code base and the functionality it provides is truly impressive.
from lucenenet.
@rclabo - Thanks for the kind words and support. As you might have noticed, I have changed my tune a little. We totally understand if people don't have the kind of bandwidth it takes to contribute, especially being that there is a bit of a learning curve before a contribution can even begin. In fact, when I lived in the U.S., I couldn't imagine how anyone could find the time to do open source work. But if that is indeed the case, we ask that those people show their support by making a small monetary contribution instead. We'd rather see this project crowdfunded by several hundred parties than have one or two companies carry the whole load on their backs, anyway.
https://github.com/sponsors/NightOwl888
https://github.com/sponsors/Shazwazza
from lucenenet.
@NightOwl888 - I think that's also a great approach. If we could get a large community supporting the project with small monetary contributions that would be awesome. Still, I also think we need to get more devs coding and supporting the project with their skills. I truly hope to be a part of that down the road.
from lucenenet.
I have generated a list of the Markdown documents and tailored it to the API docs that we should review for this issue.
However, in the process I noticed that we have demo examples that have been copied into the docs:
- websites\apidocs\apiSpec\demo\Lucene_Net_Demo_Facet_AssociationsFacetsExample.md
- websites\apidocs\apiSpec\demo\Lucene_Net_Demo_Facet_DistanceFacetsExample.md
- websites\apidocs\apiSpec\demo\Lucene_Net_Demo_Facet_ExpressionAggregationFacetsExample.md
- websites\apidocs\apiSpec\demo\Lucene_Net_Demo_Facet_MultiCategoryListsFacetsExample.md
- websites\apidocs\apiSpec\demo\Lucene_Net_Demo_Facet_RangeFacetsExample.md
- websites\apidocs\apiSpec\demo\Lucene_Net_Demo_Facet_SimpleFacetsExample.md
- websites\apidocs\apiSpec\demo\Lucene_Net_Demo_Facet_SimpleSortedSetFacetsExample.md
I don't know specifically how often we are going to need to update the demos, but having duplicate copies of them doesn't seem like a good idea maintenance-wise. And if we are going to copy them, we are missing the 2 main ones that are linked from the main "core" overview page:
Is there some reason why we need to duplicate this code into documents? Ideally, our docs would link to the state of these files at the tag of the release so we wouldn't have extra documents to maintain when the code changes.
Also, where are these documents linked from on the website? I couldn't find any references to them.
from lucenenet.
Related Issues (20)
- Meta: Add Support unit tests HOT 1
- Review formatting of boolean strings (in ToString() methods and similar)
- Add cancellation support to IndexSearcher
- Fix test name reporting when test is in a base class
- Create Roslyn code analyzer to streamline review of proper usage of format/parse methods for numeric types
- Target .NET 8 HOT 16
- .Net 6 and 8 slower than .Net 472 HOT 7
- Remove unnecessary`[MethodImpl(MethodImplOptions.NoInlining)]`
- Fix calls to Exception.StackTrace
- Performance decrease 30x when running on .NET 8 HOT 37
- Set license expression on nuget HOT 1
- Poor multi-threaded indexing performance HOT 21
- Lucene.Net.Util.SystemConsole throws not supported exception in .NET MAUI app running on android/iOS
- Lucene.Net.Store.Azure.AzureDirectory: Enable usage with a sasuri and existing containers HOT 1
- FuzzyQuery produces a wrong result when prefix is equal to the term length HOT 2
- ShingleFilter produces invalid queries HOT 2
- SegmentInfos replace doesn't update userData
- IndexReader GC Performance Issue
- Add extension methods to patch Queue.TryDequeue() and Queue.TryPeek() on netstandard2.0 and .NET Framework
- Make use of .NET 9.0's System.Threading.Lock which is more performant
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lucenenet.