2009-03-17 26 views
1

Lucene highlighter.net APIのthisバージョンを使用していますか? フレーズが検索結果にすべて含まれている場合にのみ、フレーズをハイライト表示したいと思います。しかし、できません。たとえば、入力検索文字列が「Leading telecom company」の場合、ハイライトを使用してフレーズクエリを照会

SimpleHTMLFormatter htmlFormatter = new SimpleHTMLFormatter(); 

var appData = (string)AppDomain.CurrentDomain.GetData("DataDirectory"); 
var folderpath = System.IO.Path.Combine(appData, "MyFolder"); 

indexReader = IndexReader.Open(folderpath); 

Highlighter highlighter = new Highlighter(htmlFormatter, new QueryScorer(finalQuery.Rewrite(indexReader))); 

highlighter.SetTextFragmenter(new SimpleFragmenter(800)); 

int maxNumFragmentsRequired = 5; 

string highlightedText = string.Empty; 

TokenStream tokenStream = this._analyzer.TokenStream(fieldName, new System.IO.StringReader(fieldText)); 

highlightedText = highlighter.GetBestFragments(tokenStream, fieldText, maxNumFragmentsRequired, "..."); 

return highlightedText; 

を助けてください:結果は言葉「一流」と「会社」が含まれていない場合、APIは、ここでしか

は、私が使用しているコードです...結果に「電気通信」を強調表示します!

答えて

1

highlighters unit testをご覧ください。ユースケースはどこかにある可能性があります。

0

this questionの回答をご覧ください。今のように、ハイライターはフレーズクエリを理解していません。それは単にQueryTermExtractorを使用し、ハイライトする単語のリストを取得します。

関連する問題