0
Lucene.net을 처음 사용했습니다. 나는 폴더에있는 모든 문서에서 사용자가 입력 한 키워드를 검색해야하는 경우가 있습니다.Lucene.net을 (를) 사용하여 검색된 문서를 얻을 수 없습니다.
나는 폴더에있는 모든 파일의 색인을 생성하고 사용자가 입력 한 키워드에 대한 쿼리를 준비하고 검색을 수행했습니다.
문제는 내가 히트 곡을 얻을 수 있었고 히트 곡을 반복 할 때 히트 곡의 문서에서 필드를 가져올 수 없었습니다.
여기 내 코드입니다.
public void Searching()
{
Analyzer analyzer = new StandardAnalyzer(luceneVersion.Version.LUCENE_29);
QueryParser parser = new QueryParser(luceneVersion.Version.LUCENE_29, "content", analyzer);
Query query = parser.Parse(txtSearchText.Text);
Directory directory = FSDirectory.Open(new System.IO.DirectoryInfo(txtIndexPath.Text.Trim()));
Searcher searcher = new IndexSearcher(IndexReader.Open(directory, true));
TopScoreDocCollector collector = TopScoreDocCollector.Create(100, true):
searcher.Search(query, collector);
ScoreDoc [] hits = collector.TopDocs(). ScoreDocs;
foreach (ScoreDoc hit in hits)
{
int id = hit.Doc;
float score = hit.Score;
Document doc = searcher.Doc(id);
string content = doc.Get("content"); // null
}
}
디버그를 시도하면, 내가 얻는 내용이 null이거나 비어 있습니다.
내 코드에서 아무 것도 누락되었는데, 이것은 말 그대로 반나절 이후로 나를 괴롭 히고 있습니다. 제발 도와주세요.
미리 감사드립니다.