views:

545

answers:

3

I've noticed that Lucene recently released v2.9 (on 25th September this year - 2009), whereas Lucene.Net appears to be v2.0 (released back in 2007):

  • Does the v2.0 of Lucene.net correspond to the features found in v2.0 of the original Apache Lucene
  • Are the improvements made in Apache Lucene since 2007 significant enough to warrant considering using the Java version (with some interop) instead?
+2  A: 

They have much more recent builds in their SVN repos. For all the basic stuff, I think it works really well. I'm sure that in corner cases, the latest JAVA ones edge it out, but for basic stuff, you should be ok.

See here

Matt
+6  A: 

The version numbers match between the Java and .Net versions - the .Net version is a direct port of the Java version (so yes, the features in v2.0 of Lucene.net correspond to the features found in v2.0 of the original Apache Lucene).

There are later versions than v2.0 of Lucene.Net available. On the Lucene.Net user list, it was announced recently that the port of v2.9 is under way and will be ready for testing soon. I am using Lucene.Net v2.3.2 (which was released on 24 July 2009) in a production application without any problems. There is also a later v2.4 which was released on 19th August 2009.

The news page of Lucene.Net's project pages has a full list of releases.

adrianbanks
You can find the later versions of the Lucene.Net library that @adrianbanks mentions under the "tags" folder in the SVN source. We're currently using the v2.4 tag, and so far it works fine.
dthrasher
A: 

It depends on your project requirements and overall architecture. Lucene as you know is a class library, not a stand alone service, so likely you will be writing code which uses the lucene library, in either .NET (c#) or Java. If the rest of your project is .NET then it may make more sense to use the Lucene.NET port even though it is behind the Java version. On the other hand if you need very generic Lucene functionality you may be able to use SOLR as a stand-alone service and then use web services to interface to Lucene from your other components, such as .NET services, web-site front-ends, etc. There is not huge amount of difference between Lucene.NET and Java versions, mostly some performance improvements and some fixes/changes to range queries and also more payload support but those are mostly advanced features you may not need. We use Lucene.NET 1.9 and it is very stable and very fast for us. We have over 200 million documents, distributed over about 8 indexes.