Lucene.net,想搜索一个单词并显示最近的单词

时间:2009-09-10 12:09:17

标签: 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

1 个答案:

答案 0 :(得分: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);
}