The Apache Lucene project is a significant free-text-search (FTS) software package. It is a mature piece of software, the major, the mainstream work, over the years has been done in it using the Java language.
http://lucene.apache.org/ http://incubator.apache.org/projects/lucene.net.html
The 1.9.1 version ships with build support for both the Sun java compiler (javac) and the GNU java compiler (gcj) which compiles directly to native machine code object files. The choice for somebody using the .NET platform is between using the "flagship Lucene Java" sources with the Microsoft J# compiler (vjc), or badly-named Lucene.Net which started from a translation of the Lucene Java into C#.
An advantage of using Lucene Java is that all the class names function names follow the mainstream published Lucene book http://lucenebook.com exactly, and you can follow the most recent versions and bug fixes. The disavantage is that you still have to modify about a dozen lines of code in sources to work-around some anoying little bugs and some missing features of the J# runtime classes.
For dealing with open source Java code it certainly would be nice for J# to have some kind of "macro" feature that would allow for a limited pattern of source code rewrites to be applied. E.g. Float.SomeMissingStaticMemberName(x) => jsCompat.FloatSomeMissingStaticMemberName(x). Or alternatively for some ability at the compiler level to define missing static and non-static members for existing classes, and also to re-define (shadow) any broken/incompatible static and non-static members for existing classes.
Using Visual Studio 2005 I found that the J# compiler working the Lucene Java sources produced fewer compiler warnings than the C# compiler did working the Lucene.Net (i.e. Lucene C#) sources. This was the starting point.
I'll post my Lucene Java modifications later.
Comments welcome.

Downloading the visual studio project files for Java Lucene compiled using J#
Brian Pos
Here is the promised reference to the files needed to compile and run the Lucene Java 1.9.1 release using the Visual Studio 2005 J#. There is a lucene.sln file, plus 3 vjsproj files, plus a couple new java source files containing compatibility support, and a patch file showing 15 lines of code to change in the Lucene Java release downloaded from http://lucene.apache.org/java/docs/index.html
The files you need are in http://alum.mit.edu/www/gjc/lucene-java-vjc.html