Lucene.Net FAQ

General

Have you considered IKVM rather than a line-by-line translation?

We have considered this. While there is no official decision, it seems that the majority of those involved are not interested in this path.

Pros

*Allows us to get to a "commoditized" line-by-line .NET DLL in the fastest and easiest manner. No porting.
*Reasonable performance profile
*Well tested Java environment equivalence

Cons

*Blackbox, can't improve on it or tweak behaviour. If there are bugs or other issues, related to IKVM (ie thread safety, memory handling, etc) we can't fix those without dropping IKVM as our solution.
*Adds an additional dependency
*May not be the best possible performance profile. As DIGY said, it's roughly equivalent, but that doesn't mean that current Lucene.Net is fully optimized for .NET. In fact, it has been proven not to be by folks who have made custom builds/forks, realizing significant speedups using generics and other .NET platform specific features
*Lucene.Net's binary distribution could not bundle the OpenJDK derived DLLs. They are licensed as GPL2 + Classpath Exception1 which is part of the list of explicitly prohibited licenses for ASF distributions2. This would mean users had to download the DLL from the IKVM site. Not only is this inconvient, but it makes the legal waters extremely muddy for those looking to utilize Lucene.Net in their commercial projects.
*Java's type erasure removes all signs of generics so Lucene.Net wouldn't have generics at all.
*The resulting API would use Java types like java.io.Reader rather than System.IO.TextReader which forced users to learn parts of the Java class library. The same is true for the differences in remoting, for example.

What is the target C#/.NET version?

Currently the project is a VS 2005 project using .net 2.0. LUCENENET-377 talks about changing the project to VS 2010 and it is still being resolved. As .NET features are being added the .NET version will be upgraded to meet the feature requests.

It is likely that we will standarize on VS2010 with the first release.

is Mono support a goal?

Mono support is a goal. Robert Jordan has committed to take the lead on that aspect.

Is there a build server?

Currently Lucene.Net is being built over on the TeamCity build server hosted by the guys at Code Better. You can either sign in as a guest or create your own account if you want to monitor builds and get notifications.

Whats the best source of documentation?

Because Lucene.Net is a line by line port of the Java Lucene all Java documentation applies to the .Net version. Also the excellent Lucene In Action covers just about everything you would need to know about Lucene.

Which Mailing lists are worth joining?

The 2 main mailing lists for Lucene.Net are:

Both mailing lists have excellent content on and it is work joining both to get a full view of how to use Lucene & where its going in the future. If you have particular questions about search that are more general then sometime its worth posting your question to the Java mailing list aswell, as there are plenty of knowledgable people that may have solved that exact problem before.

  • No labels