use of org.apache.lucene.search.QueryCachingPolicy in project elasticsearch by elastic.
the class ElasticsearchQueryCachingPolicyTests method testDoesNotCacheTermQueries.
public void testDoesNotCacheTermQueries() throws IOException {
QueryCachingPolicy policy = QueryCachingPolicy.ALWAYS_CACHE;
assertTrue(policy.shouldCache(new TermQuery(new Term("foo", "bar"))));
assertTrue(policy.shouldCache(new PhraseQuery("foo", "bar", "baz")));
policy = new ElasticsearchQueryCachingPolicy(policy);
assertFalse(policy.shouldCache(new TermQuery(new Term("foo", "bar"))));
assertTrue(policy.shouldCache(new PhraseQuery("foo", "bar", "baz")));
}
use of org.apache.lucene.search.QueryCachingPolicy in project elasticsearch by elastic.
the class ElasticsearchQueryCachingPolicyTests method testDoesNotPutTermQueriesIntoTheHistory.
public void testDoesNotPutTermQueriesIntoTheHistory() {
boolean[] used = new boolean[1];
QueryCachingPolicy policy = new QueryCachingPolicy() {
@Override
public boolean shouldCache(Query query) throws IOException {
throw new UnsupportedOperationException();
}
@Override
public void onUse(Query query) {
used[0] = true;
}
};
policy = new ElasticsearchQueryCachingPolicy(policy);
policy.onUse(new TermQuery(new Term("foo", "bar")));
assertFalse(used[0]);
policy.onUse(new PhraseQuery("foo", "bar", "baz"));
assertTrue(used[0]);
}
use of org.apache.lucene.search.QueryCachingPolicy in project elasticsearch by elastic.
the class AggregatorTestCase method createSearchContext.
protected SearchContext createSearchContext(IndexSearcher indexSearcher, IndexSettings indexSettings) {
Engine.Searcher searcher = new Engine.Searcher("aggregator_test", indexSearcher);
QueryCache queryCache = new DisabledQueryCache(indexSettings);
QueryCachingPolicy queryCachingPolicy = new QueryCachingPolicy() {
@Override
public void onUse(Query query) {
}
@Override
public boolean shouldCache(Query query) throws IOException {
// never cache a query
return false;
}
};
ContextIndexSearcher contextIndexSearcher = new ContextIndexSearcher(searcher, queryCache, queryCachingPolicy);
SearchContext searchContext = mock(SearchContext.class);
when(searchContext.numberOfShards()).thenReturn(1);
when(searchContext.searcher()).thenReturn(contextIndexSearcher);
when(searchContext.fetchPhase()).thenReturn(new FetchPhase(Arrays.asList(new FetchSourceSubPhase(), new DocValueFieldsFetchSubPhase())));
doAnswer(invocation -> {
releasables.add((Releasable) invocation.getArguments()[0]);
return null;
}).when(searchContext).addReleasable(anyObject(), anyObject());
return searchContext;
}
Aggregations