나는 이것을 배우기 위해 프로젝트를 인계받습니다. 이 프로젝트는 Lucence.NET을 사용합니다. 나는 또한이 기능이 맞는지 아닌지 잘 모른다. 어쨌든, 인스턴스 오전 : 특정 문서에 대한Lucene.NET - IndexWriter를 사용하여 문서를 삭제할 수 없습니다.
var writer = new IndexWriter(directory, analyzer, false);
를, 내가 전화 해요 : 결국
writer.DeleteDocuments(new Term(...));
, 나는 보통 writer.Optimize()를 호출하고있어, writer.Commit을() , writer.Close().
Term 개체의 필드는 Guid이며 문자열 (.ToString ("D"))로 변환되며 Field.Store.YES 및 Field.Index.NO를 사용하여 문서에 저장됩니다.
그러나 이러한 설정을 사용하면 이러한 문서를 삭제할 수 없습니다. 목표는 삭제 한 다음 업데이트 된 버전을 추가하는 것이므로 동일한 문서의 사본이 생성됩니다. 필요한 경우 더 많은 코드/설명을 제공 할 수 있습니다. 어떤 아이디어? 감사.
조금 더 연구를 한 후에이 사실을 깨닫고 테스트했습니다. 열을 인덱싱하고 다시 작성 했으므로 문서가 올바르게 삭제됩니다. 감사. –
같은 문제가 나타 났지만 "필드를 인덱싱해야 함"이라는 의미를 이해하지 못합니다. 분명히 해줄 수 있니? –