2009-09-10 1 views
0

Lucene.net, 단어를 검색하고 가장 가까운 단어를 표시하고 싶다.

Lucene.Net.Documents.Field fldContent = 
    new Lucene.Net.Documents.Field("content", content, 
     Lucene.Net.Documents.Field.Store.YES, 
     Lucene.Net.Documents.Field.Index.TOKENIZED, 
     Lucene.Net.Documents.Field.TermVector.WITH_POSITIONS_OFFSETS); 

단어로 검색을 수행하고 5 단어 앞에 표시하고 5 단어 뒤에 표시하려고합니다.

최대한 빨리 보내주십시오 ..

Ashish

답변

2

당신은 형광펜을보고해야한다. 형광펜을 사용하면 소스 문서에서 미리보기를 가져올 수 있습니다. 다음을 도와 줄 코드가 있습니다.

Query qry= QueryParser.Parse(query,new StandardAnalyzer()); 
Highlighter highlighter = new Highlighter(new QueryScorer(qry)); 

Hits hits = searcher.Search(qry); 

// Iterate through the results: 
for (int i = 0; i < lHits; i++) 
{ 
    Document hitDoc = hits.Doc(i); 
    String desc = hitDoc.Get("Contents"); 
    TokenStream tokenStream = analyzer.TokenStream("Contents", new System.IO.StringReader(desc)); 

    highlights[i] = highlighter.GetBestFragment(tokenStream, desc); 
}