numHighlights == 2);
}
public void testFieldSpecificHighlighting() throws Exception {
TestHighlightRunner helper = new TestHighlightRunner() {
public void run() throws Exception {
String docMainText = "fred is one of the people";
QueryParser parser = new QueryParser(FIELD_NAME, analyzer);
Query query = parser.parse("fred category:people");
// highlighting respects fieldnames used in query
Scorer fieldSpecificScorer = null;
if (mode == this.QUERY) {
fieldSpecificScorer = new QueryScorer(query, FIELD_NAME);
} else if (mode == this.QUERY_TERM) {
fieldSpecificScorer = new QueryTermScorer(query, "contents");
}
Highlighter fieldSpecificHighlighter = new Highlighter(new SimpleHTMLFormatter(),
fieldSpecificScorer);
fieldSpecificHighlighter.setTextFragmenter(new NullFragmenter());
String result = fieldSpecificHighlighter.getBestFragment(analyzer, FIELD_NAME, docMainText);
assertEquals("Should match", result, "<B>fred</B> is one of the people");
// highlighting does not respect fieldnames used in query
Scorer fieldInSpecificScorer = null;
if (mode == this.QUERY) {
fieldInSpecificScorer = new QueryScorer(query, null);
} else if (mode == this.QUERY_TERM) {
fieldInSpecificScorer = new QueryTermScorer(query);
}
Highlighter fieldInSpecificHighlighter = new Highlighter(new SimpleHTMLFormatter(),
fieldInSpecificScorer);
fieldInSpecificHighlighter.setTextFragmenter(new NullFragmenter());
result = fieldInSpecificHighlighter.getBestFragment(analyzer, FIELD_NAME, docMainText);
assertEquals("Should match", result, "<B>fred</B> is one of the <B>people</B>");
reader.close();
}
};
helper.start();
}