Lucene의 삭제 수정 작업
2125 단어 Lucene
@Test
public void saveIndex() throws Exception
{
File file = new File(indexPath);
FSDirectory dir = FSDirectory.getDirectory(file);
Document doc = File2DocumentUtils.file2Document(filePath);
IndexWriter indexWriter = new IndexWriter(dir, analyzer, MaxFieldLength.LIMITED);
indexWriter.addDocument(doc);
indexWriter.close();
}
@Test
public void deleteIndex() throws Exception
{
IndexWriter indexWriter = new IndexWriter(indexPath, analyzer, MaxFieldLength.LIMITED);
Term term = new Term("path", filePath);
indexWriter.deleteDocuments(term);
indexWriter.close();
}
@Test
public void updateIndex() throws Exception
{
IndexWriter indexWriter = new IndexWriter(indexPath, analyzer, MaxFieldLength.LIMITED);
Term term = new Term("path", filePath);
Document doc = File2DocumentUtils.file2Document(filePath);
//
indexWriter.updateDocument(term, doc);
indexWriter.close();
}
@Test
public void searchIndex() throws Exception
{
String queryString = " ";
// Query
String[] fields = {"name", "content"};
QueryParser queryParser = new MultiFieldQueryParser(fields, analyzer);
Query query = queryParser.parse(queryString);
//
IndexSearcher indexSearcher = new IndexSearcher(indexPath);
Filter filter = null;
// List
TopDocs topDocs = indexSearcher.search(query, filter, 10000);
int firstResult = 0;
int max = 3;
int end = Math.min(firstResult+max, topDocs.totalHits);
//
for (int i=firstResult; i<end;i++)
{
ScoreDoc scoreDoc = topDocs.scoreDocs[i];
int docSn = scoreDoc.doc;//
Document doc = indexSearcher.doc(docSn); //
File2DocumentUtils.printDocumentInfo(doc);
}
System.out.println(" [" + topDocs.totalHits + "] ");
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Elasticsearch 호출 Lucene 쿼리 인터페이스 원본 분석 6: 접두사 쿼리(Prefix)소개 조회 문법 원본 분석 접두사 조회는 설정에 있어서 단어 조회와 유사하다.접두사 검색은 이러한 문서와 일치할 수 있습니다. 이 문서의 특정 필드는 주어진 접두사로 시작됩니다. 예: 모든 제목 필드가cri로 시작하...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.