Skip to content

Commit

Permalink
always use deletion aware constant score
Browse files Browse the repository at this point in the history
  • Loading branch information
kimchy committed Oct 25, 2010
1 parent b7eacc3 commit 835a81c
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 28 deletions.
Expand Up @@ -29,11 +29,5 @@
*/
public interface IndexEngine extends IndexComponent {

/**
* Are readers cloned on deletion? If this is the case, then some specific
* needs to be taken.
*/
boolean readerClonedOnDeletion();

void close();
}
Expand Up @@ -41,13 +41,6 @@ public RobinIndexEngine(Index index) {
super(index, indexSettings);
}

/**
* With NRT, readers are cloned on deletions... .
*/
@Override public boolean readerClonedOnDeletion() {
return true;
}

@Override public void close() {
}
}
Expand Up @@ -19,7 +19,6 @@

package org.elasticsearch.index.query.xcontent;

import org.apache.lucene.search.ConstantScoreQuery;
import org.apache.lucene.search.DeletionAwareConstantScoreQuery;
import org.apache.lucene.search.Filter;
import org.apache.lucene.search.Query;
Expand Down Expand Up @@ -77,19 +76,12 @@ public class ConstantScoreQueryParser extends AbstractIndexComponent implements
throw new QueryParsingException(index, "[constant_score] requires 'filter' element");
}

// cache the filter if possible
Query query;
// cache the filter if possible needed
if (cache) {
Filter nonCachedFilter = filter;
filter = parseContext.cacheFilter(filter);
if (parseContext.indexEngine().readerClonedOnDeletion() && (filter != nonCachedFilter)) {
query = new DeletionAwareConstantScoreQuery(filter, true);
} else {
query = new ConstantScoreQuery(filter);
}
} else {
query = new ConstantScoreQuery(filter);
}

Query query = new DeletionAwareConstantScoreQuery(filter, true);
query.setBoost(boost);
return query;
}
Expand Down
Expand Up @@ -881,17 +881,17 @@ private XContentIndexQueryParser queryParser() throws IOException {
@Test public void testConstantScoreQueryBuilder() throws IOException {
IndexQueryParser queryParser = queryParser();
Query parsedQuery = queryParser.parse(constantScoreQuery(termFilter("name.last", "banon"))).query();
assertThat(parsedQuery, instanceOf(ConstantScoreQuery.class));
ConstantScoreQuery constantScoreQuery = (ConstantScoreQuery) parsedQuery;
assertThat(parsedQuery, instanceOf(DeletionAwareConstantScoreQuery.class));
DeletionAwareConstantScoreQuery constantScoreQuery = (DeletionAwareConstantScoreQuery) parsedQuery;
assertThat(((TermFilter) constantScoreQuery.getFilter()).getTerm(), equalTo(new Term("name.last", "banon")));
}

@Test public void testConstantScoreQuery() throws IOException {
IndexQueryParser queryParser = queryParser();
String query = copyToStringFromClasspath("/org/elasticsearch/index/query/xcontent/constantScore-query.json");
Query parsedQuery = queryParser.parse(query).query();
assertThat(parsedQuery, instanceOf(ConstantScoreQuery.class));
ConstantScoreQuery constantScoreQuery = (ConstantScoreQuery) parsedQuery;
assertThat(parsedQuery, instanceOf(DeletionAwareConstantScoreQuery.class));
DeletionAwareConstantScoreQuery constantScoreQuery = (DeletionAwareConstantScoreQuery) parsedQuery;
assertThat(((TermFilter) constantScoreQuery.getFilter()).getTerm(), equalTo(new Term("name.last", "banon")));
}

Expand Down

0 comments on commit 835a81c

Please sign in to comment.