You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by si...@apache.org on 2012/10/17 14:40:47 UTC
svn commit: r1399205 - in /lucene/dev/trunk/lucene: CHANGES.txt
highlighter/src/java/org/apache/lucene/search/highlight/WeightedSpanTermExtractor.java
highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java
Author: simonw
Date: Wed Oct 17 12:40:46 2012
New Revision: 1399205
URL: http://svn.apache.org/viewvc?rev=1399205&view=rev
Log:
LUCENE-4486: Add support for ConstantScoreQuery in Highlighter.
Modified:
lucene/dev/trunk/lucene/CHANGES.txt
lucene/dev/trunk/lucene/highlighter/src/java/org/apache/lucene/search/highlight/WeightedSpanTermExtractor.java
lucene/dev/trunk/lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java
Modified: lucene/dev/trunk/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/CHANGES.txt?rev=1399205&r1=1399204&r2=1399205&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/CHANGES.txt (original)
+++ lucene/dev/trunk/lucene/CHANGES.txt Wed Oct 17 12:40:46 2012
@@ -56,6 +56,9 @@ Bug Fixes
* LUCENE-4468: Fix rareish integer overflows in Block and Lucene40 postings
formats (Robert Muir)
+
+* LUCENE-4486: Add support for ConstantScoreQuery in Highlighter.
+ (Simon Willnauer)
* LUCENE-4485: When CheckIndex terms, terms/docs pairs and tokens,
these counts now all exclude deleted documents. (Mike McCandless)
Modified: lucene/dev/trunk/lucene/highlighter/src/java/org/apache/lucene/search/highlight/WeightedSpanTermExtractor.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/highlighter/src/java/org/apache/lucene/search/highlight/WeightedSpanTermExtractor.java?rev=1399205&r1=1399204&r2=1399205&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/highlighter/src/java/org/apache/lucene/search/highlight/WeightedSpanTermExtractor.java (original)
+++ lucene/dev/trunk/lucene/highlighter/src/java/org/apache/lucene/search/highlight/WeightedSpanTermExtractor.java Wed Oct 17 12:40:46 2012
@@ -141,6 +141,11 @@ public class WeightedSpanTermExtractor {
extractWeightedSpanTerms(terms, (SpanQuery) query);
} else if (query instanceof FilteredQuery) {
extract(((FilteredQuery) query).getQuery(), terms);
+ } else if (query instanceof ConstantScoreQuery) {
+ final Query q = ((ConstantScoreQuery) query).getQuery();
+ if (q != null) {
+ extract(q, terms);
+ }
} else if (query instanceof DisjunctionMaxQuery) {
for (Iterator<Query> iterator = ((DisjunctionMaxQuery) query).iterator(); iterator.hasNext();) {
extract(iterator.next(), terms);
Modified: lucene/dev/trunk/lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java?rev=1399205&r1=1399204&r2=1399205&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java (original)
+++ lucene/dev/trunk/lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java Wed Oct 17 12:40:46 2012
@@ -603,7 +603,7 @@ public class HighlighterTest extends Bas
// Not sure we can assert anything here - just running to check we dont
// throw any exceptions
}
-
+
public void testSpanHighlighting() throws Exception {
Query query1 = new SpanNearQuery(new SpanQuery[] {
new SpanTermQuery(new Term(FIELD_NAME, "wordx")),
@@ -663,6 +663,31 @@ public class HighlighterTest extends Bas
helper.start();
}
+
+ public void testGetBestFragmentsConstantScore() throws Exception {
+ TestHighlightRunner helper = new TestHighlightRunner() {
+
+ @Override
+ public void run() throws Exception {
+ numHighlights = 0;
+ if (random().nextBoolean()) {
+ BooleanQuery bq = new BooleanQuery();
+ bq.add(new ConstantScoreQuery(new QueryWrapperFilter(new TermQuery(
+ new Term(FIELD_NAME, "kennedy")))), Occur.MUST);
+ bq.add(new ConstantScoreQuery(new TermQuery(new Term(FIELD_NAME, "kennedy"))), Occur.MUST);
+ doSearching(bq);
+ } else {
+ doSearching(new ConstantScoreQuery(new TermQuery(new Term(FIELD_NAME,
+ "kennedy"))));
+ }
+ doStandardHighlights(analyzer, searcher, hits, query, HighlighterTest.this);
+ assertTrue("Failed to find correct number of highlights " + numHighlights + " found",
+ numHighlights == 4);
+ }
+ };
+
+ helper.start();
+ }
public void testGetFuzzyFragments() throws Exception {
TestHighlightRunner helper = new TestHighlightRunner() {