2013-05-10 2 views
0

나는 현재 아래의 단계를 사용하여 용어를 건설하고,Lucene 4.3.0 API를 사용하여 용어를 만드는 가장 좋은 방법은 무엇입니까?

최종 정적 (클래스 레벨) : 일부 기능 (들) 내부 Term t=new Term(fieldName);

:

t.createTerm(termText); 

그것은 createTerm 방법처럼 보인다는있다 Lucene 4.3.0 API에서 제거되었습니다 ...

현재 생성자를 사용하여 용어를 생성하고 있습니다.

Term term = new Term(field,text); 

나는 최신 Lucene API를 사용하여 Term을 만드는 가장 효율적인 방법을 확인하려고 생각했습니다. 누군가 나를 안내 해줄 수 있습니까?

답변

2

매우 간단합니다 : 새로운 용어 (fieldName에, termText는)

루씬 3.x를 및 이전에 여분의 생성자와 createTerm()에 대한 이유는 인턴의 추가 비용이었다 (String.intern())를 분야 명. Lucene 4.0에서는 인덱스 구조가 변경되고 용어 열거에서 필드 비교가 더 이상 필요하지 않기 때문에 필드 이름이 더 이상 유지되지 않습니다. 따라서 생성자를 사용하여 용어를 만듭니다.

일반적으로 Term은 경량 래퍼이며 더 이상 Lucene의 기본 구성 요소가 아니며 이전 버전과의 "하위 호환성"을 위해 주로 사용되며 주로 새로운 TermQuery (Term)와 같은 Query를 생성하는 데에만 사용됩니다. 구현 관점에서 볼 때 Lucene 4.x에서는 모든 필드가 별도의 인덱스와 같으며 각 필드의 용어는 새로운 클래스 인 BytesRef로 표시됩니다. BytesRef는 다음과 같은 데이터를 포함하는 더 큰 바이트 [] 배열의 슬라이스입니다. 색인에서 필드의 많은 용어.

우베

http://lucene.472066.n3.nabble.com/Best-way-to-construct-term-using-Lucene-4-3-0-API-td4062388.html

관련 문제