List of usage examples for org.apache.lucene.search LRUQueryCache getCacheSize
public final long getCacheSize()
From source file:org.elasticsearch.common.lucene.IndexCacheableQueryTests.java
License:Apache License
public void testCache() throws IOException { Directory dir = newDirectory();/*w ww . j a va 2s .c o m*/ LRUQueryCache cache = new LRUQueryCache(10000, Long.MAX_VALUE); QueryCachingPolicy policy = QueryCachingPolicy.ALWAYS_CACHE; RandomIndexWriter writer = new RandomIndexWriter(getRandom(), dir); for (int i = 0; i < 10; ++i) { writer.addDocument(new Document()); } IndexReader reader = writer.getReader(); IndexSearcher searcher = newSearcher(reader); reader = searcher.getIndexReader(); // reader might be wrapped searcher.setQueryCache(cache); searcher.setQueryCachingPolicy(policy); assertEquals(0, cache.getCacheSize()); DummyIndexCacheableQuery query = new DummyIndexCacheableQuery(); searcher.count(query); int expectedCacheSize = reader.leaves().size(); assertEquals(expectedCacheSize, cache.getCacheSize()); searcher.count(query); assertEquals(expectedCacheSize, cache.getCacheSize()); writer.addDocument(new Document()); IndexReader reader2 = writer.getReader(); searcher = newSearcher(reader2); reader2 = searcher.getIndexReader(); // reader might be wrapped searcher.setQueryCache(cache); searcher.setQueryCachingPolicy(policy); // since the query is only cacheable at the index level, it has to be recomputed on all leaves expectedCacheSize += reader2.leaves().size(); searcher.count(query); assertEquals(expectedCacheSize, cache.getCacheSize()); searcher.count(query); assertEquals(expectedCacheSize, cache.getCacheSize()); reader.close(); reader2.close(); writer.close(); assertEquals(0, cache.getCacheSize()); dir.close(); }