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 слов.

пожалуйста, пришлите мне как можно скорее ..

Ашиш


person Community    schedule 10.09.2009    source источник


Ответы (1)


Вы должны смотреть на Highlighter. Highlighter позволяет получать фрагменты из исходных документов. Вот код, который вам поможет:

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);
}
person Mikos    schedule 23.02.2010