Как лучше всего использовать Lucene из приложения Какао?
Я заинтересован в работе с Lucene из приложения Какао. Я знаю, что есть много способов сделать это, но мой вопрос, "какой путь лучше?" Мои исследования до сих пор:
LuceneKit - это порт Lucene для Objective-C, но он основан на древней на данный момент версии Lucene, и, пытаясь использовать ее, я столкнулся с несколькими серьезными проблемами с самого начала. (Неправильный подкласс NSDate; Базовый запрос, который работает в Luke, не работает с LuceneKit;) Похоже, он не является стартовым.
CLucene выглядела так, как будто она может быть жизнеспособной, но она проваливает кучу собственных тестов при сборке, включая проблему, связанную с прерывистым параллелизмом, когда половину времени я запускаю тесты, они блокируются. Не вдохновляет. Это все еще может быть ответом, но я очень нервничаю, учитывая мой опыт, просто создавая его и проводя собственные тесты.
Текущий Apache Lucene через JNI - просто никогда не вызывая библиотеку Java из C, я не уверен, что здесь происходит. Я, конечно, чувствую, что официальное Apache-кураторное воплощение Lucene, вероятно, будет самым зрелым и функциональным, но, если раньше я не занимался C <-> Java JNI, мне неясно, как соотносятся эти усилия с работой с CLucene.,
Может быть, есть другие варианты. Я не обязательно ищу первоклассный интерфейс Objective-C (хотя я бы и не отказался от него), просто что-то функциональное и, надеюсь, достаточно зрелое и достаточно производительное. У кого-нибудь есть мудрый совет?
1 ответ
Исходя из моего опыта использования JNI (хотя и не с Lucene), не слишком сложно получить что-то простое, работающее, но вы можете закончить написание множества довольно монотонного кода, связывающего все.
Другой вариант, который вы можете рассмотреть, - это JCC, который используется проектом PyLucene для генерации шаблонного C++, обертывающего внутреннюю поверхность JNI, который они затем используют для обертывания Python API.