2012-02-17 16 views
7

Actualmente estoy usando Java lucene para uno de los proyectos y obtengo un buen rendimiento. Estoy buscando la opción C/C++ para lucene y encontré CLucene en sourceforge.Uso de CLucene vs java lucene

Pero quería comprobar si CLucene es tan estable y confiable como Java lucene y si tiene todas las características compatibles con Java Lucene, ¿está también apache con licencia y con soporte activo? si SÍ, por qué no tengo la opción de descargar CLucene en el sitio apache Lucene (en el sitio apache lucene, tengo la opción lucene.net).

Me gustaría saber más sobre el uso de CLucene para el software empresarial.

Respuesta

14

CLucene está disponible bajo la licencia de Apache v2.0 y está alojado en sourceforce. No se puede descargar desde el sitio web de Lucene porque CLucene es un proyecto independiente. Sin embargo, Lucy, que es un puerto C de Lucene (idiomas dinámicos de destino), está disponible en el sitio web Lucene porque es un subproyecto de Lucene. Lo mismo aplica para Lucene.NET.

A menos que esté obligado a no utilizar un lenguaje JVM, le recomendaría que utilice la versión de Java.

Todos los desarrollos se realizan para la versión de Java y luego se copian a otros puertos como CLucene. Como consecuencia, muchas funciones útiles todavía están disponibles solo en la versión de Java (por ejemplo, las consultas de funciones no están disponibles en CLucene).

En cuanto al rendimiento, C/C++ podría ser a veces más rápido que Java, pero hay una gran cantidad de piezas de código en la versión de Java que utilizan algoritmos muy aseado para mejorar el rendimiento, tales como:

Por último, la versión de Java es la más probada y utilizada en muchos sitios web de mucho tráfico como LinkedIn o Twitter.

+2

Lucene.Net y Lucy ahora son proyectos independientes. En muchos casos, Lucy no es más rápida que Java Lucene y no está diseñada para ser compatible con índices (es decir, un índice que usted creó con java lucene no se ejecutará con Lucy) - eso es directamente del sitio web de Lucy http://incubator.apache.org/ lucy/ – Prescott

+0

Desafortunadamente lucene no se puede integrar en otro programa.Un índice de texto completo es muy útil en muchos programas. – Lothar

9

CLucene es estable y confiable, y con la misma licencia que la versión de Java (ASL). No está vinculado desde los sitios web de Apache ya que este proyecto no está bajo el paraguas de ASF.

CLucene es un puerto línea por línea de Java Lucene, y como es un código nativo (no se ejecuta en una VM y hace sus propios allocs/deallocs de memoria entre otras cosas), generalmente es más rápido que Java Lucene. Algunos puntos de referencia (un poco viejo ahora tho) muestran eso. Al ser un puerto exacto, es 100% compatible con los índices de Java Lucene y viceversa.

El único inconveniente de utilizar CLucene es que no está completamente actualizado con la versión actual de Lucene.

+0

cLa página de Lucene dice que o bien usa una versión más estable con una API anterior (1.9.1) o una más reciente pero potencialmente menos confiable desde la cabeza. ¿Sabrías lo inestable que es la cabeza? Además, no vi ninguna página sobre quién está usando cLucene. ¿Sabrías? –

+0

La versión 2.3.2 es estable, ha sido por lo menos 1-2 años desde que participé activamente en el desarrollo de este proyecto – synhershko

+0

"No está completamente actualizado" en pocas palabras; la versión actual de Java Lucene es 6.2.1, mientras que la última versión de CLucene está basada en Java Lucene 2.3.2. Además, la última versión de CLucene fue hace más de 3 años. Sin un patrocinio serio, tal como está ahora, parece que no hay forma de ponerse al día con la versión de Java. – rustyx

2

La última versión de Lucene es 5.2 y se han realizado cambios significativos en el formato de archivo de índice desde 2.3.2, enumerados en https://lucene.apache.org/core/5_2_1/core/org/apache/lucene/codecs/lucene50/package-summary.html#package_description. No creo que haya nada más disponible que esté más actualizado que CLucene. En cuanto a Lucy, el sitio web indica que: las dos bibliotecas no son compatibles en términos de formato de archivo o API, y no hay planes para establecer dicha compatibilidad.