cocoa lucene jni clucene

¿Cuál es la mejor manera de usar Lucene desde una aplicación Cocoa?



jni clucene (1)

Desde mi experiencia con JNI (aunque no con Lucene), no es demasiado complicado hacer que funcione algo sencillo, pero puedes terminar escribiendo un montón de código bastante monótono.

Otra opción que quizás desee considerar es JCC , que es utilizada por el proyecto PyLucene para generar un modelo de C ++ que envuelve la interfaz de JNI, que luego utilizan para ajustar una API de Python.

Estoy interesado en trabajar con Lucene desde una aplicación Cocoa. Soy consciente de que hay muchas maneras de hacer esto, pero mi pregunta es, "¿cuál es la mejor manera?" Mis investigaciones hasta el momento:

LuceneKit es un puerto Objective-C de Lucene, pero está basado en una versión de Lucene que es antigua en este punto, y al tratar de usarlo, me he encontrado con varios problemas importantes desde el principio. (Subclase inadecuada de NSDate; una consulta básica que funciona en Luke no funciona con LuceneKit;) Parece no ser un iniciador.

Parece que CLucene podría ser viable, pero falla un montón de sus propias pruebas en compilación, incluido un problema intermitente relacionado con la concurrencia en el que la mitad del tiempo que corro las pruebas se estanca. No inspirador Esta puede ser la respuesta, pero estoy muy nervioso considerando mi experiencia de solo construirlo y ejecutar sus propias pruebas.

Apache Lucene actual a través de JNI. Como nunca antes había llamado a una biblioteca de Java desde C, no estoy seguro de lo que está involucrado aquí. Ciertamente siento que la encarnación curada por Apache de Lucene es probablemente la más madura y funcional, pero como no había hecho C & J JNI antes, no tengo claro cómo el esfuerzo involucrado se podría comparar con trabajar con CLucene. .

Tal vez hay otras opciones. No necesariamente estoy buscando una interfaz Objective-C de primera clase (aunque tampoco rechazaría ninguna) simplemente algo funcional y, con suerte, razonablemente maduro y razonablemente eficiente. Alguien tiene algún consejo sabio?