Использование Clucene vs Java Lucene
Вопрос
В настоящее время я использую Java Lucene для одного из проектов и получаю нормальную производительность. Я ищу вариант C/C ++ для Lucene и наткнулся на Clucene на SourceForge.
Но я хотел проверить, является ли Clucene столь же стабильным и надежным, как Java Lucene и иметь все функции, поддерживаемые Java Lucene, также ли лицензирован Apache и активно поддерживается? Если да, то почему у меня нет возможности загружать Clucene на сайте Apache Lucene (на сайте Apache Lucene у меня есть опция Lucene.net).
Хотел бы узнать больше об использовании Clucene для корпоративного программного обеспечения.
Решение
Clucene доступен в рамках Apache License v2.0 и размещен в Sourceforge. Анкет Это не можно загрузить с сайта Lucene, потому что Clucene является независимым проектом. Однако, Люси, который представляет собой C-порт Lucene (Targetting Dynamic Languages), доступен на веб-сайте Lucene, потому что он является субпроектом Lucene. То же самое относится и к Lucene.net.
Если вы не вынуждены не использовать язык JVM, я бы порекомендовал вам использовать версию Java.
Все разработки сделаны для версии Java, а затем иногда перекупаются в другие порты, такие как Clucene. Как следствие, множество полезных функций по -прежнему доступны только в версии Java (например, запросы функций недоступны в Clucene).
Что касается производительности, то C/C ++ иногда может быть быстрее Java, но в версии Java есть много фрагментов кода, которые используют очень аккуратные алгоритмы для повышения производительности, такие как:
- Levenshtein Automata для нечетких запросов,
- не блокирующий механизм промывки Чтобы улучшить пропускную способность индексации.
И последнее, но не менее важное, версия Java является наиболее протестированной и используется на многих очень активных веб-сайтах, таких как LinkedIn или Twitter.
Другие советы
Clucene является стабильным и надежным, и по той же лицензии, что и Java -версия (ASL). Он не связан с веб -сайтов Apache, так как этот проект не находится под зонтиком ASF.
Clucene-это линейный порт Java Lucene, и является собственным кодом (не работающим на виртуальной машине и выполняет свои собственные Allocs/Deallocs, в частности, он обычно быстрее, чем 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#package_description. Анкет Я не верю, что есть еще что -то еще, что более обновляется, чем Clucene. Что касается Люси, веб -сайт гласит, что: две библиотеки не совместимы с точки зрения формата файла или API, и нет планов для установления такой совместимости.