2016-09-06 4 views
1

Lucene.net을 처음 사용했습니다. Lucene 색인 파일에서 문서를 삭제하려고했습니다. 그러나 불행하게도 나는 그것을 끝낼 수 없었다.Lucene에서 문서를 삭제할 수 없습니다. 색인

여기 내 코드입니다.

public void DeleteDocuments() 
{ 
    Term term = new Term("id", id); 
    Analyzer analyzer = new StandardAnalyzer(LuceneVersion.LUCENE_30); 
    Directory directory = FSDirectory.Open(filePath); 
    IndexWriter writer = new IndexWriter(directory, analyzer, IndexWriter.MaxFieldLength.UNLIMITED); 
    writer.DeleteDocuments(term); 
    writer.Optimize(); 
    writer.Commit(); 
    writer.Dispose(); 
} 

색인 파일에서 문서를 삭제할 수 없습니다. 제발 도와주세요.

미리 감사드립니다.

+0

오류가 발생합니까? – Prescott

+0

인덱스 디렉토리에 write.lock 파일이 있습니까? –

답변

0

문제는 "id"필드에 사용중인 분석기 일 수 있습니다.

ID에 글자가 포함되어 있으면 StandardAnalyzer가 소문자로 색인을 생성합니다. 이는 작성중인 용어가 색인 된 "ABC"와 "abc"의 값이 다를 수 있음을 의미합니다.

Fo id 유형 필드는 분석없이 필드가 생성되었는지 확인해야합니다.

관련 문제