Question

I am currently using Java lucene for one of the project and getting OK kind of performance. I am looking for C/C++ option for lucene and came across CLucene on sourceforge.

But I wanted to check if CLucene is as stable and reliable as Java lucene and having all features supported by Java Lucene, also is it apache licensed and actively supported ? if YES why I dont have option to download CLucene on apache Lucene site (on apache lucene site I have lucene.net option though).

Would like to understand more on usage of CLucene for enterprise software.

Was it helpful?

Solution

CLucene is available under the Apache License v2.0 and is hosted at sourceforge. It is not downloadable from Lucene website because CLucene is an independant project. However, Lucy, which is a C port of Lucene (targetting dynamic languages), is available from Lucene website because it is a sub-project of Lucene. Same applies for Lucene.NET.

Unless you are forced not to use a JVM language, I would recommend you use the Java version.

All developments are done for the Java version and then sometimes backported to other ports such as CLucene. As a consequence, lots of useful features are still only available in the Java version (for example function queries are not available in CLucene).

Regarding performance, C/C++ might sometimes be faster than Java, but there are a lot of pieces of code in the Java version which use very neat algorithms to improve performance, such as:

Last but not least, the Java version is the most tested one and used in a lot of very high-traffic websites such as LinkedIn or Twitter.

OTHER TIPS

CLucene is stable and reliable, and under the same license as the Java version (ASL). It is not linked from the Apache websites as this project is not under the ASF umbrella.

CLucene is line-by-line port of Java Lucene, and being native code (not running on a VM and doing it's own memory allocs/deallocs among other things) it is usually faster than Java Lucene. Some benchmarks (a bit old now tho) show that. Being an exact port, it is 100% compatible with Java Lucene indexes and vice versa.

The only drawback to using CLucene is it is not completely up to date with the current Lucene version.

The latest version for Lucene is 5.2 and significant changes have been made to the index file format since 2.3.2, listed at https://lucene.apache.org/core/5_2_1/core/org/apache/lucene/codecs/lucene50/package-summary.html#package_description. I don't believe there is anything else available that is more updated than CLucene. As for Lucy the website states that: the two libraries are not compatible in terms of either file format or API, and there are no plans to establish such compatibility.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top