Lucene 3.0 인덱스
3.1 IndexWriter
구조 방법:
IndexWriter(Directory d, Analyzer a, boolean create, IndexDeletionPolicy deletionPolicy, IndexWriter.MaxFieldLength mfl)
IndexWriter(Directory d, Analyzer a, boolean create, IndexWriter.MaxFieldLength mfl)
IndexWriter(Directory d, Analyzer a, IndexDeletionPolicy deletionPolicy, IndexWriter.MaxFieldLength mfl)
IndexWriter(Directory d, Analyzer a, IndexDeletionPolicy deletionPolicy, IndexWriter.MaxFieldLength mfl, IndexCommit commit)
IndexWriter(Directory d, Analyzer a, IndexWriter.MaxFieldLength mfl)
각 구조 방법의 매개 변 수 는 의미 가 같다.그 중에서 Directory d 는 색인 의 저장 경 로 를 표시 합 니 다.Analyzer a 는 단어 기 입 니 다.boolean create 는 새 색인 을 만 들 지 여 부 를 표시 합 니 다. IndexDeleteionPolicy deleteonPolicy 는 색인 삭제 정책 을 표시 합 니 다.IndexWriter. MaxFieldLength mfl 색인 항목 개수;Index Commit commit, commt point 와 연 결 된 segment 파일 을 가 져 오 는 데 사 용 됩 니 다.
3.2 IndexReader
IndexReader 는 디스크 디 렉 터 리 에 저 장 된 색인 을 불 러 오고 삭제 하 는 작업 을 담당 하 는 Lucence 색인 을 관리 합 니 다.내부 적 인 방법 을 통 해 현재 색인 에 있 는 문서 의 수 등 정 보 를 통계 할 수 있 습 니 다.
3.3 Analyzer
분사 기
4. 색인 설정 에 대한 조언
4.1 색인 영역 유형 선택
1) 불필요 한 저장 소 최소 화
2) 검색 할 필요 가 없 는 내용 은 색인 을 만 들 지 않 는 다.
3) 텍스트 가 아 닌 형식 은 미리 전환 해 야 한다.
4) 전체적으로 보관 해 야 할 내용 은 단 어 를 나 누 지 않 는 다.
4.2 색인 매개 변수 최적화
1) 통합 매개 변수 setMergeFactor () 를 설정 하여 최대 메모리 에 저 장 된 색인 문서 문서 의 개 수 를 제어 합 니 다.
2) 최대 문서 개수 setMaxBufferedDocs () 를 설정 합 니 다. 병합 세그먼트 의 크기, 즉 하나의 색인 세그먼트 가 몇 개 에 이 르 면 더 큰 새 세그먼트 로 합 칠 수 있 습 니 다.
3) 도 메 인 인덱스 개수 제한 setMaxFieldLength ()
4) 최대 메모리 삭제 항목 설정 setMaxBufferedDeleteTerms
4.3 디스크 인덱스 와 메모리 인덱스
디스크 인덱스 는 FSDirectory 를 사용 하고 메모리 인덱스 는 RAMDirectory 를 사용 합 니 다.
4.4 동기 화 및 잠 금 메커니즘
write. lock 은 색인 문 서 를 동시에 수정 하지 않도록 설정 합 니 다.
commt. lock 은 주로 segment 를 만 들 고 통합 하거나 읽 을 때 사용 하 며 색인 의 통합 함수 와 세그먼트 통합 함수 에서 만 사용 합 니 다.
실례:
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Date;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.util.Version;
public class LuceneIndexManager {
private static String Index_Path = "D:/index";
private static String Text_Path = "D:/text/wine.txt";
public static void main(String[] args) {
try {
Date start = new Date();
File file1 = new File(Text_Path);
File file2 = new File(Index_Path);
Directory dir = FSDirectory.open(file2);
Analyzer TextAnalyzer = new StandardAnalyzer(Version.LUCENE_CURRENT);
IndexWriter TextIndex = new IndexWriter(dir,TextAnalyzer, true,IndexWriter.MaxFieldLength.LIMITED);
Document document = new Document();
Field field_name = new Field("name", file1.getName(),Field.Store.YES,Field.Index.NOT_ANALYZED);
document.add(field_name);
FileInputStream inputfile = new FileInputStream(file1);
int len = inputfile.available();
byte[] buffer = new byte[len];
inputfile.read(buffer);
inputfile.close();
String contenttext = new String(buffer);
Field field_content = new Field("content", contenttext,Field.Store.YES, Field.Index.ANALYZED);
document.add(field_content);
TextIndex.addDocument(document);
TextIndex.optimize();
TextIndex.close();
Date end = new Date();
long tm_index = end.getTime() - start.getTime();
System.out.print("Total Time(ms): ");
System.out.println(tm_index);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("Index Success");
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Elasticsearch 호출 Lucene 쿼리 인터페이스 원본 분석 6: 접두사 쿼리(Prefix)소개 조회 문법 원본 분석 접두사 조회는 설정에 있어서 단어 조회와 유사하다.접두사 검색은 이러한 문서와 일치할 수 있습니다. 이 문서의 특정 필드는 주어진 접두사로 시작됩니다. 예: 모든 제목 필드가cri로 시작하...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.