2012-05-13 2 views
1

나는 3.0 API를 사용하여 '액션 루씬'의 두 번째 버전을 통해 내 방식대로 일을 시작했다가, 저자는 코드에서 다음과 같은 방법설정 루씬 IndexWriter 최대 필드

private IndexWriter getIndexWriter() throws CorruptIndexException, LockObtainFailedException, IOException { 
    return new IndexWriter(directory, new WhitespaceAnalyzer(), IndexWriter.MaxFieldLength.Unlimited); 
    } 

와 기본 INdexWriter를 생성 아래에서는 현재 API에 따라 변경했습니다. 단, 필자의 최대 필드 길이를 무제한으로 설정하는 방법을 책 예제의 상수와 같이 설정할 수는 없습니다. 방금 int 1000을 삽입했습니다. 이 API는 무제한 상수인가요?

private IndexWriter getIndexWriter() throws CorruptIndexException, LockObtainFailedException, IOException { 
     IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_36, 
       new LimitTokenCountAnalyzer(new WhitespaceAnalyzer(Version.LUCENE_36), 1000)); 
     return new IndexWriter(directory, iwc); 
    } 

감사합니다. 단지 호기심 때문입니다.

답변

3

IndexWriter의 javadoc는 말한다 :

대신 LimitTokenCountAnalyzer를 사용 @Deprecated. 은 약간 변경되었습니다. 분석기는 생성 된 토큰 스트림 당 토큰의 수를 제한하며,이 설정은 토큰의 총 수를 제한하여 색인을 생성합니다. 이 문제는 여러 개의 다중 값 필드를 인덱싱하는 경우에만 중요합니다.

즉, 유선 방식이 멋진 어댑터/위임 패턴으로 대체되었습니다.

+0

감사합니다. javadoc이 싱크 할 수 있도록 몇 가지 판독 값을 가져 왔습니다. – awfulHack