2011-04-08 4 views
1

Version에 Apache Lucene 메서드 'valueOf (String)'을 사용하는 방법을 알려주고 싶으십니까? enum에서 사용해야하는 현재 버전을 반환하는 데 사용됩니까?Version method 'valueOf (String)'사용 방법

http://lucene.apache.org/java/3_1_0/api/core/org/apache/lucene/util/Version.html#valueOf(java.lang.String) 예를 들어

는 않습니다 :

Version.valueOf("StandardAnalyzer"); 

돌아 가기 StandardAnalyzer와 함께 사용되어야 emum 버전?

감사합니다.

답변

0

난 당신이 필요로하는이 방법이 있다고 생각합니다. 나는 당신이 처음부터 시작한다면 최신 버전으로 가야한다고 생각하지만, 그렇지 않으면 한 버전에서 다른 버전으로 업그레이드하기위한 기꺼이 선택해야합니다. 라이브러리의 새 버전을 선택할 때 자동으로 "업데이트"되지 않도록 LUCENE_CURRENT 상수를 사용하지 않습니다.

그래서 기본적으로 Version.LUCENE_31을 새 프로젝트의 구성으로 전달합니다. 열거 형을 사용하여 두 버전을 onOrAfter 메소드와 비교할 수도 있습니다.

질문에 답하기 위해, (지금은 테스트 할 수 없습니다.) 어떤 이유로 든 valueOf 메서드를 사용하려면 버전 이름이있는 문자열을 전달해야합니다. 예 : Version.valueOf ("LUCENE_23"). 물론 이것은 버전 이름이 설정 파일에서 나온 경우에 유용합니다.

도움이 되길 바랍니다.

+0

이것은 컴파일되지 않습니까? –

0

이 메서드는 모든 메서드에 대해 정의되며 "LUCENE_24"과 같은 문자열을 해당 열거 형 LUCENE_24으로 변환합니다. 내가 열거가 안전하게 사용할 버전을 선택할 수 있도록이 있다고 생각 그것을

for(Version v : Version.valueOf("StandardAnalyzer")) System.out.println(v); 
0

프로브 :

+0

답변 해 주셔서 감사합니다. 나는 3.1.0 버전의 Lucene을 사용하고 있는데, 내가 게시 한 이유는 StandardAnalyzer 용 Version.LUCENE_31을 사용할 때마다 예외가 발생하기 때문입니다 : org.springframework.web.util.NestedServletException : 처리기 처리에 실패했습니다. 중첩 예외는 java.lang.NoClassDefFoundError입니다 : org/apache/lucene/util/Version – MeanwhileInHell

+0

오. 이것은 또 다른 문제입니다. 이 오류를 제공하는 유일한 lucene 클래스입니까? – Jad