Используя CLucene против Java Lucene

В настоящее время я использую Java Lucene для одного проекта и добиваюсь хорошей производительности. Я ищу вариант C/C++ для lucene и наткнулся на CLucene на sourceforge.

Но я хотел проверить, является ли CLucene столь же стабильным и надежным, как Java Lucene, и имеет ли все функции, поддерживаемые Java Lucene, также лицензируется ли Apache и активно ли он поддерживается? Если ДА, почему у меня нет возможности загрузить CLucene на сайте Apache Lucene (хотя на сайте Apache Lucene у меня есть опция lucene.net).

Хотелось бы больше узнать об использовании CLucene для корпоративного программного обеспечения.

3 ответа

Решение

CLucene доступен под лицензией Apache v2.0 и размещен на sourceforge. Его нельзя загрузить с веб-сайта Lucene, поскольку CLucene является независимым проектом. Однако Lucy, который является портом C Lucene (для динамических языков), доступен на веб-сайте Lucene, потому что это подпроект Lucene. То же самое относится и к Lucene.NET.

Если вы не обязаны использовать язык JVM, я бы порекомендовал вам использовать версию Java.

Все разработки выполняются для версии Java, а затем иногда переносятся в другие порты, такие как CLucene. Как следствие, множество полезных функций все еще доступны только в версии Java (например, запросы функций недоступны в CLucene).

Что касается производительности, C/C++ иногда может быть быстрее, чем Java, но в версии Java есть много фрагментов кода, которые используют очень аккуратные алгоритмы для повышения производительности, такие как:

И последнее, но не менее важное, версия Java является наиболее проверенной и используется на многих сайтах с очень высоким трафиком, таких как LinkedIn или Twitter.

CLucene является стабильным и надежным и имеет ту же лицензию, что и версия Java (ASL). Он не связан с веб-сайтами Apache, так как этот проект не находится под эгидой ASF.

CLucene является построчным портом Java Lucene, и, будучи нативным кодом (не работающим на виртуальной машине и не занимающимся собственной памятью, выделяет / освобождает память среди прочего), он обычно быстрее, чем Java Lucene. Некоторые тесты (немного устаревшие сейчас) показывают это. Будучи точным портом, он на 100% совместим с индексами Java Lucene и наоборот.

Единственным недостатком использования CLucene является то, что он не полностью соответствует текущей версии Lucene.

Последняя версия для Lucene - 5.2, и с 2.3.2 были внесены значительные изменения в формат файла индекса, указанный на https://lucene.apache.org/core/5_2_1/core/org/apache/lucene/codecs/lucene50/package-summary.html. Я не верю, что есть что-то еще более обновленное, чем CLucene. Что касается Люси, веб-сайт заявляет, что: две библиотеки не совместимы ни с точки зрения ни формата файла, ни API, и не планируется устанавливать такую ​​совместимость.

Другие вопросы по тегам