#java #search #lucene
#java #Поиск #lucene
Вопрос:
Интересно, может ли кто-нибудь сказать мне, как использовать метод Apache Lucene ‘valueOf(String)’ для версии? Используется ли это для возврата текущей версии, которая должна использоваться из перечисления?
Например, выполняет ли:
Version.valueOf("StandardAnalyzer");
возвращает версию emum, которая должна использоваться со StandardAnalyzer?
Спасибо!
Ответ №1:
я думаю, что таким образом вам нужно: проверить это
for(Version v : Version.valueOf("StandardAnalyzer")) System.out.println(v);
Ответ №2:
Этот valueOf
метод определен для каждого метода и просто преобразует строку типа "LUCENE_24"
в соответствующую константу enum LUCENE_24
.
Ответ №3:
Я думаю, что перечисление предназначено для того, чтобы вы могли безопасно выбирать версию, которую хотите использовать. Я предполагаю, что вы должны использовать последнюю версию, если начинаете с нуля, но в противном случае вы должны добровольно перейти с одной версии на другую. Они устарели от константы LUCENE_CURRENT, чтобы вы не «обновлялись» автоматически при выборе новой версии библиотеки.
Итак, в принципе, я бы передал Version.LUCENE_31 в качестве конфигурации для нового проекта. Перечисление также можно использовать для сравнения двух версий с помощью метода onOrAfter.
Тем не менее, чтобы ответить на ваш вопрос, я думаю (но не могу проверить прямо сейчас), что если по какой-то причине вы хотите использовать метод valueOf, вам придется передать строку с именем версии. Например, Version.valueOf(«LUCENE_23»). Конечно, это было бы полезно, если имя вашей версии взято из файла конфигурации.
Надеюсь, это поможет
Комментарии:
1. Спасибо за ваш ответ. Я использую версию 3.1.0 Lucene, и причина, по которой я опубликовал, заключается в том, что всякий раз, когда я использовал версию. LUCENE_31 для StandardAnalyzer я получаю исключение: исключение org.springframework.web.util.NestedServletException: ошибка обработки обработчика; вложенным исключением является java.lang. Ошибка NoClassDefFoundError: org/apache/lucene/util/Version
2. Ох. Это еще одна проблема. Это единственный класс lucene, выдающий вам эту ошибку?