Mailing List Archive

What are the pros and cons of using the C# version of Lucene as compared to the Java version in a .NET environment?
If you are developing mainly in the Microsoft.NET framework 2.0 then
it seems that you have 3 choices for running Lucene.

What are the pros and cons of each choice?

1. Use the C# code from the apache incubator project
Lucene.Net http://incubator.apache.org/projects/lucene.net.html
2. Use the flagship project Lucene Java http://lucene.apache.org/java/docs/index.html
With the Sun java runtime and define some web services in an application such
As Apache Tomcat that you can call from your other .NET framework code.
3. Use the Lucene Java sources as above, but compile it using the J# compiler, such
As illustrated here: http://alum.mit.edu/www/gjc/lucene-java-vjc.html

I am particularly interested in risks associated with choice #3. Is the Microsoft J# compiler to be trusted? Do the people using the gcj compiler have any experience to guide somebody considering the use of a Java compiler not provided by Sun?

This is for a mission-critical application at a high profile internet media company.
Re: What are the pros and cons of using the C# version of Lucene as compared to the Java version in a .NET environment? [ In reply to ]
I have never used Lucene under Windows, but I do know that some quite high profile Internet companies have used Lucene.net port and are happy with it. See http://xanga.com

Otis

----- Original Message ----
From: George Carrette <gjc@alum.mit.edu>
To: general@lucene.apache.org
Sent: Tuesday, May 9, 2006 1:00:08 PM
Subject: What are the pros and cons of using the C# version of Lucene as compared to the Java version in a .NET environment?

If you are developing mainly in the Microsoft.NET framework 2.0 then
it seems that you have 3 choices for running Lucene.

What are the pros and cons of each choice?

1. Use the C# code from the apache incubator project
Lucene.Net http://incubator.apache.org/projects/lucene.net.html
2. Use the flagship project Lucene Java http://lucene.apache.org/java/docs/index.html
With the Sun java runtime and define some web services in an application such
As Apache Tomcat that you can call from your other .NET framework code.
3. Use the Lucene Java sources as above, but compile it using the J# compiler, such
As illustrated here: http://alum.mit.edu/www/gjc/lucene-java-vjc.html

I am particularly interested in risks associated with choice #3. Is the Microsoft J# compiler to be trusted? Do the people using the gcj compiler have any experience to guide somebody considering the use of a Java compiler not provided by Sun?

This is for a mission-critical application at a high profile internet media company.
RE: What are the pros and cons of using the C# version of Lucene as compared to the Java version in a .NET environment? [ In reply to ]
As Otis mentioned we are using Lucene.NET (the recent 1.9 build) and we are
quite happy with it. There were some memory leak bugs early on since .NET
doesn't have an equivalent of Java's HashMap; but after those worked out,
performance and scalibity has been great. The issues we are focused on now
are general Lucene issues (such as scaling a large index and reducing
indexing times) rather than C# vs. Java issues. I highly recommend it.

Monsur
Xanga.com



> -----Original Message-----
> From: Otis Gospodnetic [mailto:otis_gospodnetic@yahoo.com]
> Sent: Tuesday, May 09, 2006 2:02 PM
> To: general@lucene.apache.org
> Subject: Re: What are the pros and cons of using the C#
> version of Lucene as compared to the Java version in a .NET
> environment?
>
> I have never used Lucene under Windows, but I do know that
> some quite high profile Internet companies have used
> Lucene.net port and are happy with it. See http://xanga.com
>
> Otis
>
> ----- Original Message ----
> From: George Carrette <gjc@alum.mit.edu>
> To: general@lucene.apache.org
> Sent: Tuesday, May 9, 2006 1:00:08 PM
> Subject: What are the pros and cons of using the C# version
> of Lucene as compared to the Java version in a .NET environment?
>
> If you are developing mainly in the Microsoft.NET framework 2.0 then
> it seems that you have 3 choices for running Lucene.
>
> What are the pros and cons of each choice?
>
> 1. Use the C# code from the apache incubator project
> Lucene.Net http://incubator.apache.org/projects/lucene.net.html
> 2. Use the flagship project Lucene Java
> http://lucene.apache.org/java/docs/index.html
> With the Sun java runtime and define some web services in
> an application such
> As Apache Tomcat that you can call from your other .NET
> framework code.
> 3. Use the Lucene Java sources as above, but compile it using
> the J# compiler, such
> As illustrated here:
> http://alum.mit.edu/www/gjc/lucene-java-vjc.html
>
> I am particularly interested in risks associated with choice
> #3. Is the Microsoft J# compiler to be trusted? Do the people
> using the gcj compiler have any experience to guide somebody
> considering the use of a Java compiler not provided by Sun?
>
> This is for a mission-critical application at a high profile
> internet media company.
>
>
>
>
>
>
>
Re: What are the pros and cons of using the C# version of Lucene as compared to the Java version in a .NET environment? [ In reply to ]
So will the .NET port in functionality terms offer equivalent capacities as
that of Java.

Are there any crucial features which are missing and have not yet been
implemented in Lucene.net (considering the fact that lucene java is gonna
hit 2.0 soon and lucene.net is still in dev phase in 1.9)

Is there any advantage in term of speed ( when you look at the .NET port)

Are there any benchmark comparisons available

Rgds
Prabhu

On 5/10/06, Monsur Hossain <monsur@monsur.com> wrote:
>
>
> As Otis mentioned we are using Lucene.NET (the recent 1.9 build) and we
> are
> quite happy with it. There were some memory leak bugs early on since .NET
> doesn't have an equivalent of Java's HashMap; but after those worked out,
> performance and scalibity has been great. The issues we are focused on
> now
> are general Lucene issues (such as scaling a large index and reducing
> indexing times) rather than C# vs. Java issues. I highly recommend it.
>
> Monsur
> Xanga.com
>
>
>
> > -----Original Message-----
> > From: Otis Gospodnetic [mailto:otis_gospodnetic@yahoo.com]
> > Sent: Tuesday, May 09, 2006 2:02 PM
> > To: general@lucene.apache.org
> > Subject: Re: What are the pros and cons of using the C#
> > version of Lucene as compared to the Java version in a .NET
> > environment?
> >
> > I have never used Lucene under Windows, but I do know that
> > some quite high profile Internet companies have used
> > Lucene.net port and are happy with it. See http://xanga.com
> >
> > Otis
> >
> > ----- Original Message ----
> > From: George Carrette <gjc@alum.mit.edu>
> > To: general@lucene.apache.org
> > Sent: Tuesday, May 9, 2006 1:00:08 PM
> > Subject: What are the pros and cons of using the C# version
> > of Lucene as compared to the Java version in a .NET environment?
> >
> > If you are developing mainly in the Microsoft.NET framework 2.0 then
> > it seems that you have 3 choices for running Lucene.
> >
> > What are the pros and cons of each choice?
> >
> > 1. Use the C# code from the apache incubator project
> > Lucene.Net http://incubator.apache.org/projects/lucene.net.html
> > 2. Use the flagship project Lucene Java
> > http://lucene.apache.org/java/docs/index.html
> > With the Sun java runtime and define some web services in
> > an application such
> > As Apache Tomcat that you can call from your other .NET
> > framework code.
> > 3. Use the Lucene Java sources as above, but compile it using
> > the J# compiler, such
> > As illustrated here:
> > http://alum.mit.edu/www/gjc/lucene-java-vjc.html
> >
> > I am particularly interested in risks associated with choice
> > #3. Is the Microsoft J# compiler to be trusted? Do the people
> > using the gcj compiler have any experience to guide somebody
> > considering the use of a Java compiler not provided by Sun?
> >
> > This is for a mission-critical application at a high profile
> > internet media company.
> >
> >
> >
> >
> >
> >
> >
>
>
>
Re: What are the pros and cons of using the C# version of Lucene as compared to the Java version in a .NET environment? [ In reply to ]
I think all of these questions are waiting a brave soul with an itch. Got itch?

Otis


----- Original Message ----
From: Raghavendra Prabhu <rrprabhu@gmail.com>
To: general@lucene.apache.org
Sent: Tuesday, May 9, 2006 4:21:54 PM
Subject: Re: What are the pros and cons of using the C# version of Lucene as compared to the Java version in a .NET environment?

So will the .NET port in functionality terms offer equivalent capacities as
that of Java.

Are there any crucial features which are missing and have not yet been
implemented in Lucene.net (considering the fact that lucene java is gonna
hit 2.0 soon and lucene.net is still in dev phase in 1.9)

Is there any advantage in term of speed ( when you look at the .NET port)

Are there any benchmark comparisons available

Rgds
Prabhu

On 5/10/06, Monsur Hossain <monsur@monsur.com> wrote:
>
>
> As Otis mentioned we are using Lucene.NET (the recent 1.9 build) and we
> are
> quite happy with it. There were some memory leak bugs early on since .NET
> doesn't have an equivalent of Java's HashMap; but after those worked out,
> performance and scalibity has been great. The issues we are focused on
> now
> are general Lucene issues (such as scaling a large index and reducing
> indexing times) rather than C# vs. Java issues. I highly recommend it.
>
> Monsur
> Xanga.com
>
>
>
> > -----Original Message-----
> > From: Otis Gospodnetic [mailto:otis_gospodnetic@yahoo.com]
> > Sent: Tuesday, May 09, 2006 2:02 PM
> > To: general@lucene.apache.org
> > Subject: Re: What are the pros and cons of using the C#
> > version of Lucene as compared to the Java version in a .NET
> > environment?
> >
> > I have never used Lucene under Windows, but I do know that
> > some quite high profile Internet companies have used
> > Lucene.net port and are happy with it. See http://xanga.com
> >
> > Otis
> >
> > ----- Original Message ----
> > From: George Carrette <gjc@alum.mit.edu>
> > To: general@lucene.apache.org
> > Sent: Tuesday, May 9, 2006 1:00:08 PM
> > Subject: What are the pros and cons of using the C# version
> > of Lucene as compared to the Java version in a .NET environment?
> >
> > If you are developing mainly in the Microsoft.NET framework 2.0 then
> > it seems that you have 3 choices for running Lucene.
> >
> > What are the pros and cons of each choice?
> >
> > 1. Use the C# code from the apache incubator project
> > Lucene.Net http://incubator.apache.org/projects/lucene.net.html
> > 2. Use the flagship project Lucene Java
> > http://lucene.apache.org/java/docs/index.html
> > With the Sun java runtime and define some web services in
> > an application such
> > As Apache Tomcat that you can call from your other .NET
> > framework code.
> > 3. Use the Lucene Java sources as above, but compile it using
> > the J# compiler, such
> > As illustrated here:
> > http://alum.mit.edu/www/gjc/lucene-java-vjc.html
> >
> > I am particularly interested in risks associated with choice
> > #3. Is the Microsoft J# compiler to be trusted? Do the people
> > using the gcj compiler have any experience to guide somebody
> > considering the use of a Java compiler not provided by Sun?
> >
> > This is for a mission-critical application at a high profile
> > internet media company.
> >
> >
> >
> >
> >
> >
> >
>
>
>
RE: What are the pros and cons of using the C# version of Lucene as compared to the Java version in a .NET environment? [ In reply to ]
> Are there any crucial features which are missing and have not yet been
> implemented in Lucene.net (considering the fact that lucene
> java is gonna
> hit 2.0 soon and lucene.net is still in dev phase in 1.9)

The way I understand it Lucene 2.0 is the same as 1.9, with all the
deprecated stuff purged out. So the functionality of 2.0 and 1.9 should be
the same. Its true Lucene.NET lags a bit from the Java Lucene, but what can
you do, that's the way the port works.

George Aroush has done a great job porting Lucene over; he'd know more about
any missing features. But we haven't missed any features yet.


> Is there any advantage in term of speed ( when you look at
> the .NET port)

We aren't running the Java version anywhere, so I can't give you any
numbers. I can tell you we're happy with performance: we have a 12 gig (and
growing) index and searches are a few milliseconds. But I do believe you
can optimize performance in areas other than which version of Lucene you
use. For example, we found Lucene to be disk limited, so faster hard drives
help.

If you can, I'd suggest starting with the C# version until you hit a hard
limit on it; you might be pleasantly surprised.

Your original message mentioned using Java Lucene with a web service. Well,
even though we use .NET throughout our entire development platform, we still
set up our Lucene.NET server as a web service. This gave us a lot of
flexibility. So even if you go with Lucene.NET, you might want to consider
the web services route anyway. If you need to swap in the Java version
later, you'll have an easier time.

Monsur
Re: What are the pros and cons of using the C# version of Lucene as compared to the Java version in a .NET environment? [ In reply to ]
On May 9, 2006, at 5:37 PM, Monsur Hossain wrote:
> George Aroush has done a great job porting Lucene over; he'd know
> more about
> any missing features. But we haven't missed any features yet.

Also note that George might not be on general@lucene (I've CC'd him
so he can see Lucene.Net is being discussed here).


> Your original message mentioned using Java Lucene with a web
> service. Well,
> even though we use .NET throughout our entire development platform,
> we still
> set up our Lucene.NET server as a web service. This gave us a lot of
> flexibility. So even if you go with Lucene.NET, you might want to
> consider
> the web services route anyway. If you need to swap in the Java
> version
> later, you'll have an easier time.

I highly recommend folks in other environments also look at Solr -
http://incubator.apache.org/solr - when contemplating whether to use
ports of Java Lucene. Solr is a RESTful (lower cased) web service
that provides a lot of nice facilities on top of Java Lucene. It'll
integrate nicely into any environment, and only requires that you run
a Java web container such as Tomcat, Jetty, Resin, etc.

Erik