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());
+  }
 }