rclabo commented on issue #437:
URL: https://github.com/apache/lucenenet/issues/437#issuecomment-1075737268


   @alexhiggins732 I agree with @NightOwl888, it’s much better to fully 
complete version 4.8 before working to upgrade it to whatever the current 
version of Java Lucene is at that time.
   
   You mentioned:
   
   >Didn't realize Lucene was on version 9.1 already. This is just a beta 
version of 4.8, which was released in on Apr 27, 2014, nearly 8 years ago. 
Looking at the current features and changes, the CSharp codebase is leaps and 
bounds behind.
   
   I can understand how the casual observer might reach that conclusion.  In 
fact when I first discovered Lucene.NET 4.8 Beta a couple years ago I too 
wondered whether its feature set was current enough to be of value.
   
   But the more I dug into the project the more I was blown away by Lucene.NET 
4.8’s power and the [advanced engineering]( 
http://opensearchlab.otago.ac.nz/paper_10.pdf) it contains.  It’s truly a 
remarkable piece of software.  It’s architecture and features are as relevant 
today as ever.
   
   I know that people see the 4.8 version number, Beta status and length of 
time it’s taken to port it and they wonder how relevant it is.  That’s 
understandable And that’s the reason I recently I wrote a blog article 
[Lucene.NET 4.8 vs Java Lucene 9.x]( Lucene.NET 4.8 vs Java Lucene 9.x) to help 
people realize that Lucene.NET 4.8 has a wealth of features and the majority of 
the features of Java Lucene 9.x. 
   
   ## Release Schedule Analysis
   
   Besides what I mention in the blog article, it’s important to realize that 
the time period between major releases was much longer during the version 1.x 
to version 4.8 era.   And since then, the Lucene team, like most software 
teams, has moved to doing smaller more frequent releases. 
   
   Let’s look at the release timeline of Java Lucene.  
   
   2000 – First open source version of Lucene.
   2002 – Lucene 1.2 released Under Apache License
   2003 – Lucene 1.3 released
   2006 – Lucene 2.9 released
   2009 – Lucene 3.0 released
   2012 – Lucene 4.0 released      
   2014 – Lucene 4.8 released
   2015 – Lucene 5.0 Released
   2016 – Lucene 6.0 Released
   2017 – Lucene 7.0 Released
   2019 – Lucene 8 Released
   2021 – Lucene 9 Released
   
   Source: https://www.elastic.co/celebrating-lucene#2020 
   
   I don’t know how many years Doug Cutting worked on Lucene before making it 
open source in 2000. But ya gotta guess it was at least two years.  Now look 
when Lucene 4.8 was released, in 2014.  So at the release of Lucene 4.8 there 
was probably 16+ years of development behind it.  That’s not labor years, just 
calendar years.  **Think about that for a minute.** 
   
   But how many years difference is there between Lucene 4.8  to Lucene 9?  7 
years.  Now 7 years is a lot, I grant you that.  But it’s important to remember 
that the single biggest new set of features ever to be introduced in the 
history of Lucene came in version 4.0.  That’s why it took more than 3 years 
for the Java team get to the 4.0 release *even with a large team*.  
   
   In our case 8 years have passed in going from Lucene.NET 3.03 to 4.8.  But 
our team is much smaller and we don’t currently have any corporate backing 
(Java Lucene has **LOTS** of corporate backing).  
   
   
   ## Why even compare to Java Lucene?
   
   Honestly, I don’t see a lot of point in comparing Lucene.NET to Java Lucene, 
unless you are equally happy to use a Java library as a .NET one.  If that’s 
the case, the comparison is valid and you should seriously consider using Java 
Lucene 9.1.  But if you are a .NET developer developing a .NET application, 
website or mobile App then the comparison isn’t really between Lucene.NET 4.8 
and Java Lucene 9.1, it’s between Lucene.NET and other .NET based search 
libraries. 
   
   
   ## What I see when I look at Lucene.NET 4.8
   
   So when I look at Lucene.NET 4.8 I see something totally different than what 
you see.  
   
   I see a software architecture that was initially created by someone (Doug 
Cutting) who was creating his “**fifth search engine**, having previously 
written two while at Xerox PARC, one at Apple, and a fourth at Excite.” 
[source]( https://en.wikipedia.org/wiki/Apache_Lucene).  Hat’s off to Doug for 
sharing this with the world. Wow!
   
   I see an insanely large feature set hammered out by numerous developers over 
a 16+ year timeframe.  
   
   I see more than 
[644K+](https://lucenenet.apache.org/images/contributing/source/lucenenet-repo-lines-of-code--jan-2022.png)
 lines of code (not counting dependencies!) that have been ported to c#, and 
run on .NET on Windows, Linux or MacOS. 
   
   I see a powerful search library that can be used to search enable desktop 
applications, websites or mobile apps (Android or iOS).  
   
   I see a multi-targeted search library that runs on the .NET Full Framework, 
.NET Core 3.1 LTS, .NET 5 or even the latest and greatest .NET 6. 
   
   I see a project that while calling itself beta because a few method 
signatures may still change, **has 7800+ passing unit tests and is clearly 
production worthy right now in my mind.**


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@lucenenet.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to