You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by jp...@apache.org on 2015/10/15 17:32:32 UTC
svn commit: r1708839 - in /lucene/dev/branches/branch_5x: ./ lucene/
lucene/CHANGES.txt lucene/core/
lucene/core/src/java/org/apache/lucene/search/IndexSearcher.java
lucene/core/src/test/org/apache/lucene/search/TestIndexSearcher.java
Author: jpountz
Date: Thu Oct 15 15:32:31 2015
New Revision: 1708839
URL: http://svn.apache.org/viewvc?rev=1708839&view=rev
Log:
LUCENE-6838: Added getters for IndexSearcher's query cache and caching policy.
Modified:
lucene/dev/branches/branch_5x/ (props changed)
lucene/dev/branches/branch_5x/lucene/ (props changed)
lucene/dev/branches/branch_5x/lucene/CHANGES.txt (contents, props changed)
lucene/dev/branches/branch_5x/lucene/core/ (props changed)
lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/IndexSearcher.java
lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestIndexSearcher.java
Modified: lucene/dev/branches/branch_5x/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/CHANGES.txt?rev=1708839&r1=1708838&r2=1708839&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/CHANGES.txt (original)
+++ lucene/dev/branches/branch_5x/lucene/CHANGES.txt Thu Oct 15 15:32:31 2015
@@ -26,6 +26,9 @@ New Features
fast, very accurate query to find all indexed points within an
earth-surface shape (Karl Wright, Mike McCandless)
+* LUCENE-6838: Added IndexSearcher#getQueryCache and #getQueryCachingPolicy.
+ (Adrien Grand)
+
API Changes
* LUCENE-6590: Query.setBoost(), Query.getBoost() and Query.clone() are gone.
Modified: lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/IndexSearcher.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/IndexSearcher.java?rev=1708839&r1=1708838&r2=1708839&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/IndexSearcher.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/IndexSearcher.java Thu Oct 15 15:32:31 2015
@@ -270,6 +270,17 @@ public class IndexSearcher {
}
/**
+ * Return the query cache of this {@link IndexSearcher}. This will be either
+ * the {@link #getDefaultQueryCache() default query cache} or the query cache
+ * that was last set through {@link #setQueryCache(QueryCache)}. A return
+ * value of {@code null} indicates that caching is disabled.
+ * @lucene.experimental
+ */
+ public QueryCache getQueryCache() {
+ return queryCache;
+ }
+
+ /**
* Set the {@link QueryCachingPolicy} to use for query caching.
* This method should be called <b>before</b> starting using this
* {@link IndexSearcher}.
@@ -281,6 +292,16 @@ public class IndexSearcher {
}
/**
+ * Return the query cache of this {@link IndexSearcher}. This will be either
+ * the {@link #getDefaultQueryCachingPolicy() default policy} or the policy
+ * that was last set through {@link #setQueryCachingPolicy(QueryCachingPolicy)}.
+ * @lucene.experimental
+ */
+ public QueryCachingPolicy getQueryCachingPolicy() {
+ return queryCachingPolicy;
+ }
+
+ /**
* Expert: Creates an array of leaf slices each holding a subset of the given leaves.
* Each {@link LeafSlice} is executed in a single thread. By default there
* will be one {@link LeafSlice} per leaf ({@link org.apache.lucene.index.LeafReaderContext}).
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestIndexSearcher.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestIndexSearcher.java?rev=1708839&r1=1708838&r2=1708839&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestIndexSearcher.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestIndexSearcher.java Thu Oct 15 15:32:31 2015
@@ -30,6 +30,8 @@ import org.apache.lucene.document.Field.
import org.apache.lucene.document.SortedDocValuesField;
import org.apache.lucene.document.StringField;
import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.LeafReaderContext;
+import org.apache.lucene.index.MultiReader;
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.BooleanClause.Occur;
@@ -188,4 +190,46 @@ public class TestIndexSearcher extends L
dir.close();
}
+ public void testGetQueryCache() throws IOException {
+ IndexSearcher searcher = new IndexSearcher(new MultiReader());
+ assertEquals(IndexSearcher.getDefaultQueryCache(), searcher.getQueryCache());
+ QueryCache dummyCache = new QueryCache() {
+ @Override
+ public Weight doCache(Weight weight, QueryCachingPolicy policy) {
+ return weight;
+ }
+ };
+ searcher.setQueryCache(dummyCache);
+ assertEquals(dummyCache, searcher.getQueryCache());
+
+ IndexSearcher.setDefaultQueryCache(dummyCache);
+ searcher = new IndexSearcher(new MultiReader());
+ assertEquals(dummyCache, searcher.getQueryCache());
+
+ searcher.setQueryCache(null);
+ assertNull(searcher.getQueryCache());
+
+ IndexSearcher.setDefaultQueryCache(null);
+ searcher = new IndexSearcher(new MultiReader());
+ assertNull(searcher.getQueryCache());
+ }
+
+ public void testGetQueryCachingPolicy() throws IOException {
+ IndexSearcher searcher = new IndexSearcher(new MultiReader());
+ assertEquals(IndexSearcher.getDefaultQueryCachingPolicy(), searcher.getQueryCachingPolicy());
+ QueryCachingPolicy dummyPolicy = new QueryCachingPolicy() {
+ @Override
+ public boolean shouldCache(Query query, LeafReaderContext context) throws IOException {
+ return false;
+ }
+ @Override
+ public void onUse(Query query) {}
+ };
+ searcher.setQueryCachingPolicy(dummyPolicy);
+ assertEquals(dummyPolicy, searcher.getQueryCachingPolicy());
+
+ IndexSearcher.setDefaultQueryCachingPolicy(dummyPolicy);
+ searcher = new IndexSearcher(new MultiReader());
+ assertEquals(dummyPolicy, searcher.getQueryCachingPolicy());
+ }
}