Lucene.NET Highlighter を検索に追加しようとしていますが、非常に奇妙な強調表示を行っています。何が間違っていますか?
強調表示コードは次のとおりです。
// stuff here to get scoreDocs
var content = doc.GetField("content").StringValue();
// content = "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been"
var highlighter = new Highlighter(new StrongFormatter(), new HtmlEncoder(), new QueryScorer(query.Rewrite(indexSearcher.GetIndexReader())));
highlighter.SetTextFragmenter(new SimpleFragmenter(100));
var tokenStream = analyzer.TokenStream("content", new StringReader(content));
var bestFragment = highlighter.GetBestFragment(tokenStream, content);
を検索すると、次の"lorem"
bestFragment 値が得られます。
<strong>Lorem</strong> <strong>Ipsum</strong> is <strong>simply</strong> <strong>dummy</strong> <strong>text</strong> of the <strong>printing</strong> and <strong>typesetting</strong> <strong>industry</strong>. <strong>Lorem</strong> <strong>Ipsum</strong> <strong>has</strong> <strong>been</strong>
ご覧のとおり、単なる"Lorem"
. なんで?
これを賢明に動作させるにはどうすればよいですか?
を使用してStandardAnalyzer
おり、クエリは次のようになります"content:lorem"
*編集: * Lucene.NET 2.9.2 を使用しています
ありがとう