count should be cached as a filter
This commit is contained in:
parent
f1d5b179ce
commit
40b0dfddec
|
@ -323,6 +323,8 @@ public class InternalIndexShard extends AbstractIndexShardComponent implements I
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Query query = queryParser.parse(querySource);
|
Query query = queryParser.parse(querySource);
|
||||||
|
// wrap it in filter, cache it, and constant score it
|
||||||
|
query = new ConstantScoreQuery(filterCache.cache(new QueryWrapperFilter(query)));
|
||||||
query = filterByTypesIfNeeded(query, types);
|
query = filterByTypesIfNeeded(query, types);
|
||||||
Engine.Searcher searcher = engine.searcher();
|
Engine.Searcher searcher = engine.searcher();
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -23,13 +23,13 @@ import org.elasticsearch.action.admin.cluster.health.ClusterHealthResponse;
|
||||||
import org.elasticsearch.action.admin.cluster.health.ClusterHealthStatus;
|
import org.elasticsearch.action.admin.cluster.health.ClusterHealthStatus;
|
||||||
import org.elasticsearch.action.admin.indices.optimize.OptimizeResponse;
|
import org.elasticsearch.action.admin.indices.optimize.OptimizeResponse;
|
||||||
import org.elasticsearch.action.admin.indices.status.IndexStatus;
|
import org.elasticsearch.action.admin.indices.status.IndexStatus;
|
||||||
import org.elasticsearch.action.terms.TermsRequest;
|
|
||||||
import org.elasticsearch.action.terms.TermsResponse;
|
import org.elasticsearch.action.terms.TermsResponse;
|
||||||
import org.elasticsearch.client.Client;
|
import org.elasticsearch.client.Client;
|
||||||
import org.elasticsearch.test.integration.AbstractServersTests;
|
import org.elasticsearch.test.integration.AbstractServersTests;
|
||||||
import org.testng.annotations.AfterMethod;
|
import org.testng.annotations.AfterMethod;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
import static org.elasticsearch.action.terms.TermsRequest.SortType.*;
|
||||||
import static org.elasticsearch.client.Requests.*;
|
import static org.elasticsearch.client.Requests.*;
|
||||||
import static org.elasticsearch.util.json.JsonBuilder.*;
|
import static org.elasticsearch.util.json.JsonBuilder.*;
|
||||||
import static org.hamcrest.MatcherAssert.*;
|
import static org.hamcrest.MatcherAssert.*;
|
||||||
|
@ -134,7 +134,7 @@ public class TermsActionTests extends AbstractServersTests {
|
||||||
assertThat(termsResponse.field("value").termsFreqs()[1].docFreq(), equalTo(2));
|
assertThat(termsResponse.field("value").termsFreqs()[1].docFreq(), equalTo(2));
|
||||||
|
|
||||||
logger.info("Verify freqs (sort gy freq)");
|
logger.info("Verify freqs (sort gy freq)");
|
||||||
termsResponse = client.terms(termsRequest("test").fields("value").sortType(TermsRequest.SortType.FREQ)).actionGet();
|
termsResponse = client.terms(termsRequest("test").fields("value").sortType(FREQ)).actionGet();
|
||||||
assertThat(termsResponse.successfulShards(), equalTo(indexStatus.shards().size()));
|
assertThat(termsResponse.successfulShards(), equalTo(indexStatus.shards().size()));
|
||||||
assertThat(termsResponse.failedShards(), equalTo(0));
|
assertThat(termsResponse.failedShards(), equalTo(0));
|
||||||
assertThat(termsResponse.fieldsAsMap().isEmpty(), equalTo(false));
|
assertThat(termsResponse.fieldsAsMap().isEmpty(), equalTo(false));
|
||||||
|
@ -148,7 +148,7 @@ public class TermsActionTests extends AbstractServersTests {
|
||||||
assertThat(termsResponse.field("value").termsFreqs()[1].docFreq(), equalTo(1));
|
assertThat(termsResponse.field("value").termsFreqs()[1].docFreq(), equalTo(1));
|
||||||
|
|
||||||
logger.info("Verify freq (size and sort by freq)");
|
logger.info("Verify freq (size and sort by freq)");
|
||||||
termsResponse = client.terms(termsRequest("test").fields("value").sortType(TermsRequest.SortType.FREQ).size(1)).actionGet();
|
termsResponse = client.terms(termsRequest("test").fields("value").sortType(FREQ).size(1)).actionGet();
|
||||||
assertThat(termsResponse.successfulShards(), equalTo(indexStatus.shards().size()));
|
assertThat(termsResponse.successfulShards(), equalTo(indexStatus.shards().size()));
|
||||||
assertThat(termsResponse.failedShards(), equalTo(0));
|
assertThat(termsResponse.failedShards(), equalTo(0));
|
||||||
assertThat(termsResponse.fieldsAsMap().isEmpty(), equalTo(false));
|
assertThat(termsResponse.fieldsAsMap().isEmpty(), equalTo(false));
|
||||||
|
@ -160,7 +160,7 @@ public class TermsActionTests extends AbstractServersTests {
|
||||||
assertThat(termsResponse.field("value").termsFreqs()[0].docFreq(), equalTo(2));
|
assertThat(termsResponse.field("value").termsFreqs()[0].docFreq(), equalTo(2));
|
||||||
|
|
||||||
logger.info("Verify freq (minFreq with sort by freq)");
|
logger.info("Verify freq (minFreq with sort by freq)");
|
||||||
termsResponse = client.terms(termsRequest("test").fields("value").sortType(TermsRequest.SortType.FREQ).minFreq(2)).actionGet();
|
termsResponse = client.terms(termsRequest("test").fields("value").sortType(FREQ).minFreq(2)).actionGet();
|
||||||
assertThat(termsResponse.successfulShards(), equalTo(indexStatus.shards().size()));
|
assertThat(termsResponse.successfulShards(), equalTo(indexStatus.shards().size()));
|
||||||
assertThat(termsResponse.failedShards(), equalTo(0));
|
assertThat(termsResponse.failedShards(), equalTo(0));
|
||||||
assertThat(termsResponse.fieldsAsMap().isEmpty(), equalTo(false));
|
assertThat(termsResponse.fieldsAsMap().isEmpty(), equalTo(false));
|
||||||
|
@ -172,7 +172,7 @@ public class TermsActionTests extends AbstractServersTests {
|
||||||
assertThat(termsResponse.field("value").termsFreqs()[0].docFreq(), equalTo(2));
|
assertThat(termsResponse.field("value").termsFreqs()[0].docFreq(), equalTo(2));
|
||||||
|
|
||||||
logger.info("Verify freq (prefix with sort by freq)");
|
logger.info("Verify freq (prefix with sort by freq)");
|
||||||
termsResponse = client.terms(termsRequest("test").fields("value").sortType(TermsRequest.SortType.FREQ).prefix("bb")).actionGet();
|
termsResponse = client.terms(termsRequest("test").fields("value").sortType(FREQ).prefix("bb")).actionGet();
|
||||||
assertThat(termsResponse.successfulShards(), equalTo(indexStatus.shards().size()));
|
assertThat(termsResponse.successfulShards(), equalTo(indexStatus.shards().size()));
|
||||||
assertThat(termsResponse.failedShards(), equalTo(0));
|
assertThat(termsResponse.failedShards(), equalTo(0));
|
||||||
assertThat(termsResponse.fieldsAsMap().isEmpty(), equalTo(false));
|
assertThat(termsResponse.fieldsAsMap().isEmpty(), equalTo(false));
|
||||||
|
|
Loading…
Reference in New Issue